database - 在 Firestore 中查询没有映射键的文档
问题描述
我在 Firestore 中有几个文档,每个文档都包含一个用户 ID 映射。例如:
// Document 1
userIds: {
"1": true,
"2": true,
"3": true,
...
}
// Document 2
userIds: {
"2": true,
"3": true,
...
}
// Document 3
userIds: {
"2": true,
"3": true,
"4": true,
...
}
我想查找其userIds
地图不包含某个用户 ID 的所有文档。我试过使用这个查询:
.where('userIds.1', isEqualTo: null)
然而,这并没有得到预期的结果。通过上面的查询,所有文档都被返回。文件 2 和 3 应被退回。
我怎样才能做到这一点?
解决方案
您无法查询文档中是否缺少数据。这不是 Firestore 索引的工作方式。索引通过在易于搜索的结构中记录值的存在来工作。它们无法存储几乎无限数量的不存在的值。如果你想搜索某个东西,它实际上必须在一个已知位置有一个值。
推荐阅读
- python - 在字典中搜索字符串值
- bash - 当 Bash 和 GETOPTS 中没有设置 $OPTARG 时,有没有办法在 Flag 中继续?
- ansible - ansible 2.9.2得到skip_reason:“条件结果为假”即使满足我的条件字符串
- javascript - 从 Header 父组件打开 Material-UI 对话框模式
- android - AndroidStudio 4.1 稳定版。调试器的问题
- java - 如何在java中读取mp3文件的幅度
- python - 如何从一维数组制作多维数组?
- node.js - 从聚合方法操作字段
- c++ - 当我在开头包含该文件的头文件时,为什么要求我从另一个文件声明一个函数?
- autodesk-forge - 如何使用鼠标滚轮事件移动剖面