Firestore获取值不在数组中的文档?

ast*_*tro 8 firebase google-cloud-firestore

有没有一种方法可以获取所有文档,其中数组字段不包含一个或多个值,现在有“ array-contains”但有类似“ array-not-contains”的内容吗?

Dou*_*son 11

您只能根据索引查询 Firestore,这样查询都可以扩展到搜索数十亿文档而不会出现性能问题。

索引通过记录数据集中存在的值来工作。如果索引跟踪不存在的东西,它就不可能高效。这是因为与您的数据集相比,不存在的值的范围非常大,因此无法编入索引。查询某个值是否不存在将需要扫描所有文档,并且无法扩展。

  • 我理解你的说法,但这也意味着有些事情是不可能的。例如,如何向用户显示他还没有看到的用户列表?与 Tinder 一样,您向人们展示您尚未“匹配”,并存储您匹配或忽略的人,但您无法保留所有未匹配的人的记录(并制作索引)。即使用户相对较少(超过 1 万),您也已经拥有超过 10 亿的记录。我不知道我说的话是否有意义,但我没有找到一种方法来表示 Firebase 中的这种关系。 (13认同)

小智 5

我认为目前这是不可能的。我会尝试查看这篇博客文章以供参考。

Cloud Firestore 中更好的阵列

您可能需要将数组转换为对象,以便可以通过 (property === false) 进行查询将数组转换为对象

  • 如果属性不存在,即使使用“property === false”查询也不会给出结果 (6认同)