当前位置: 首页 > 知识库问答 >
问题:

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

江凯风
2023-03-14

考虑以下Firestore结构:

  • 收藏人物

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

这可能吗?

共有1个答案

许承悦
2023-03-14

您列出的第一个示例查询(“有两个以上宠物的人”)不可能与您当前的数据集一起使用。Firestore不提供计数或聚合操作。如果你想清点东西,你需要得到所有的文件并在客户端清点它们,或者使用其他方法保持一个活动的清点。

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

 类似资料:
  • 假设我有这种结构 其中和是集合,和是文档 有没有一种方法可以通过一个查询获得根文档中包含的所有内容<如果我这样问 我只得到字段。我想要的是B的所有文件 我基本上希望我的查询返回 是否可能或者我真的需要对每个集合进行多个查询:/? 假设我有一个代表用户配置文件的非常深的嵌套集合树,我的成本会像地狱一样上升,因为每次我加载用户配置文件时,我都有一个读取请求的乘数其中N是我的树的深度: /.

  • 如果文档集合包含: 我想构建一个聚合,通过我的myDocRefId字段只返回没有被任何其他文档引用的文档。对于这个集合,我想返回: 文档1在聚合中被删除,因为文档3具有对它的引用。 如何在聚合管道中实现这一点?

  • 我正在使用Java开发一个Android应用程序,我使用firestore数据库,我有一个名为用户位置的集合,其结构类似于照片: 分贝 我的问题是,当一个用户改变他的位置或一个新用户进入一个已经存在的位置(其他用户有相同的位置)时,它会创建一个新文档(如在“oran, algerie”中)。当我添加新用户并更新文档时,我想使用,但问题是我无法以正常方式检索根集合的所有文档: 它返回null。我尝试

  • 在我的集合的SnapshotListener中,我使用以下命令循环遍历文档: 在 for 循环中的每个文档中,让我们称之为 ,我在 Cloud Firestore 上还有另一个文档集合。我想检索内子集合中的所有文档(每个文档只有一个字符串字段)。我能够做一个来获取本身,我用它来获取字符串字段,但我不知道如何获取其子集合中的文档。

  • 我被android firstore文档和子集合弄糊涂了。 此示例将生成以下数据结构: 代码如下: 子集合和文档节点交替显示:a、c与b、d。 但是如何在没有d节点的情况下实现类似的数据结构(如下所示): 自。add方法仅适用于document而不适用于collection,我们不能只删除d(document),因为c(collection)没有add方法。 我应该如何修改我的代码?

  • 我的FiRecovery数据库中有一个名为Reports的集合,我已经在其中添加了文档。但我现在的问题是我想在报表中添加一个带有子集合的文档,有什么想法吗?