- 此问题在此处已有答案**:
collectionGroup within a certain path(2个答案)
9天前关闭。
我已经阅读了collectionGroup
文档,并阅读了关于从特定文档获取集合的答案。
我正在寻找类似的东西,但我列出了所有的子集合,由特定集合内的文档引用。
例如,我理想的查询是db.collection('metrics').collectionGroup('days')
,其中metrics
是包含文档的大集合,每个文档都有一个子集合days
。
collectionGroup within a certain path(2个答案)
9天前关闭。
我已经阅读了collectionGroup
文档,并阅读了关于从特定文档获取集合的答案。
我正在寻找类似的东西,但我列出了所有的子集合,由特定集合内的文档引用。
例如,我理想的查询是db.collection('metrics').collectionGroup('days')
,其中metrics
是包含文档的大集合,每个文档都有一个子集合days
。
2条答案
按热度按时间0aydgbwb1#
我是the answer you linked的作者,我调查了阻止我将答案扩展到包括文档和集合的防护措施,不幸的是,截至
firebase
v9.17.1,它仍然存在。只要该防护措施仍然有效,收集组查询就只能搜索整个数据库,或者仅限于特定文档下的路径。目前不可能进行收集。
这个问题的解决方法是将
metrics
集合嵌套在它自己的文档下。为了提高效率,您需要尽可能地缩短集合ID和文档ID。在下面的示例中,我使用“g”作为“group”的缩写,使用“1”表示“group 1”(也可以使用“m”表示度量)。注意:如果您打算拥有10个以上的此类组,请立即开始使用01
、02
等,否则下面的查询将返回无效结果。这将允许您使用以下命令限制指向该组的路径:
xuo3flqw2#
您提到了获取文档下的集合。这是一个子集合,查询如下所示
db.collection('metrics').document('x').collection('days')
从该参考中,您可以查询文档
x
下days
子集合中的文档db.collectionGroup('days')
这将查询所有日集合中的所有文档,而不管它们在哪个文档下。