我正试图在数据库中获取使用相同ID创建的多个文档。我知道可以在下面显示的代码中使用collectionGroup
来做到这一点,但我正在寻找一种可能更有效,更清洁的方法。
我已经阅读了问题How to perform collection group query using document ID in Cloud Firestore,该问题表明必须使用collectionGroup
将ID存储在字段中以找到文档。
在我的情况下,带有myId
的文档可以位于两个不同的集合中,所以我想避免使用collectionGroup
,因为我必须在这样的两个单独的集合中这样做:
const collectionOneDocs = await firestoreInstance.get().collectionGroup('collectionOne').where('id', '==', myId).get();
const collectionTwoDocs = await firestoreInstance.get().collectionGroup('collectionTwo').where('id', '==', myId).get();
此代码对我有用,但是我想执行一次操作来访问文档,并且也避免将id
保存为文档中的字段,因为这并不是必需的。那么,在Firestore中是否总能找到具有特定id
的所有文档,或者这已经是Firestore可用的最佳解决方案?
非常感谢!
答案 0 :(得分:1)
如果集合的名称不同,则无法通过单个查询从它们中获取结果。
因此,您唯一的选择是: