根据子集合中的文档过滤文档

时间:2020-02-28 20:15:37

标签: firebase google-cloud-firestore

考虑以下Firestore结构:

  • 集合people
  • 集合中的每个文档都有一个子集合pets
  • 子集合pets具有包含宠物数据的多个文档。

现在,我想查询宠物满足某些条件的人。例如,拥有两个以上宠物的人,或者拥有一个名为“ ABC”的宠物的人。

这可能吗?

1 个答案:

答案 0 :(得分:2)

您列出的第一个示例查询(“拥有两个以上宠物的人”)无法使用当前数据集。 Firestore不提供计数或汇总操作。如果要计数,则需要获取所有文档并在客户端计数,或者使用其他方法保持有效计数。

您列出的第二个示例查询(拥有“ ABC”宠物的人)可以通过collection group query针对名为“ pets”的子集合进行查询,这些子集合使用包含以下名称的字段过滤文档该查询将返回所有子集合中的所有宠物,您将必须对其进行迭代并检查对这些文档的引用以建立人员列表。使用您的数据,就不可能发出单个查询仅获取人员列表。