【发布时间】:2023-03-31 22:01:02
【问题描述】:
搜索集合中所有文档的复合查询完美运行,如下所示:
var newData = admin.firestore().collection("MyProject").where('username', '==', 'myname');
为了存储更多用户生成的数据,我使用“collection/doc/collection/doc”功能,其中文档是根据用户的输入自动生成的。
现在要查询在最后一个文档中创建任何内容的数据,我想要这样的东西:
var newData = admin.firestore().collection("MyProject/{docID}/subcollection")
.where('location', '==', 'location');
但这不起作用。还有什么我可以尝试的只能让我得到匹配内容的结果吗?
(以下也没有)
var newData = admin.firestore().collection("MyProject".doc({docID}").collection("subcollection")
.where('location', '==', 'location');
也许通配符仅适用于触发器而不适用于查询? (https://firebase.google.com/docs/functions/firestore-events)。我不确定,因为我无法在网上找到更多关于此的文档。如果没有这个功能,我会发现 collection/doc/collection/doc... 存储风格非常有限且无用。
我想到的一种解决方法是获取 MyCollection 中的“所有”文档并运行这些文档的查询“forEach”。这将在 Firestore 中具有更高的复杂性和更多的读取,因为 MyProject 中可能有数千个文档。
请分享您关于如何以最低复杂度获取数据的智慧。提前谢谢!
【问题讨论】:
标签: firebase google-cloud-functions