我有三个子集合嵌套在一个主集合下。
我想让' collection3 '下的所有文档对应'collection2'中的每个文档对应'collection1'中的每个文档
我想查询-
admin.firestore().collection('collection1').doc('FOR ALL DOCS IN COLLECTION 1').collection('collection2').doc('FOR ALL DOCS IN COLLECTION 2').collection('collection3').get()
我的问题是,我可以这样查询吗?以下查询是否有效?
collection('collection1/*/collection2/*/collection3')
这是一个有效的路径吗?什么是"*"?表明?
我试过这样做,
const baseRef = admin.firestore().collection(`collection1/*/collection2/*/collection3`);
const querySnap = baseRef.get()
它返回给我一个querySnapshot但是当我试图循环这个querySnapshot时,它没有打印任何东西
querySnap.forEach(doc => console.log(doc.id))
输出无。
我期望在控制台中打印doc id。
这可以通过集合组级查询实现。
collectionGroup选项返回您创建的集合组中的所有文档。
const allDocsQuery = admin.firestore()
.collectionGroup('collection1');
await allDocsQuery.get().then((snap) => {
// do operations with your data
});
注意,你需要创建一个集合组来使用它——它会抛出一个指向创建页面的链接的错误,但是你也可以按照上面链接中的文档来做。