如何查询文档数据中缺少密钥的测试文档?我想抓住主要缺少密钥的情况,并且 - 如果有一种方法可以在doc中存储undefined或null(我不确定是否存在) - 我也想抓住这些。
不应该是其中之一...
let query = db.collection('myCollection').where('someProp','==',null);
let query = db.collection('myCollection').where('someProp','==',undefined);
但是在我的测试中,这些都没有找到缺少密钥的文档。我是firestore的新手,所以也许我的查询还有其他问题。
我在文档中找不到它,但也许火器中的特殊对象意味着“不在那里”?
答案 0 :(得分:2)
Cloud Firestore依赖索引来回答查询,并且在没有索引的情况下无法回答任何查询。
如果某个字段不存在,则无法为其输入索引,因此无法查询该字段。
查询集合中的所有文档并检查返回的文档。请注意,对于大型集合而言,这可能会变得更加昂贵,因为它会导致您阅读所有文档
如果计划好,您可以拥有一个名为schema_version
的字段。无论何时添加新字段,都要增加此字段中存储的值(例如从12到13)。现在,如果您知道schema_version
== 13下不存在某个字段,您只需查询版本< 13。