集合组查询是否从所有具有相同名称的集合中获取数据?

时间:2019-05-20 09:06:37

标签: firebase google-cloud-firestore

我有以下Firebase Cloud Firestore模式:

my_db -> users -> uid -> places -> placeId

my_db -> places -> placeId

此收集组查询会在两个路径中获得位置吗?如果是,请确保我得到副本。有什么办法可以避免这种情况?

编辑:我的目标是获取数据库中所有用户的所有位置,而不是所有集合中的所有位置。

1 个答案:

答案 0 :(得分:0)

收藏夹组查询始终会查看所有顶级收藏夹和子收藏夹,这些收藏夹和子收藏夹带有您提供的名称的任何深度和路径。无法更改此行为。如果要限制查询的范围,则需要对集合命名不同。

如果您无法更改数据库结构,则可以通过查看客户端快照中的文档路径来过滤客户端上的文档,从而至少忽略不感兴趣的集合的结果,并自行决定是否应该处理该文档。

另一种策略是将一个布尔字段放入顶层集合文档中不存在的每个子集合的文档中。您可以使用此字段仅查询子集合中的文档。