Firestore 性能:通过单次往返高效获取多个文档
使用 Firestore 时,检索多个文档可能会成为性能问题,尤其是在处理每个文档的单独请求时。为了优化数据检索,必须利用允许通过一次往返数据库来获取多个文档的功能。
使用 getAll() 方法
对于用 Node.js 编写的服务器端应用程序,getAll() 方法提供了一种通过单个网络调用检索多个文档的便捷方法。它接受可变数量的 DocumentReference 对象作为参数,并返回一个包含 DocumentSnapshot 对象数组的 Promise。
示例:
const firestore = getFirestore(); const docRef1 = firestore.doc('col/doc1'); const docRef2 = firestore.doc('col/doc2'); firestore.getAll(docRef1, docRef2).then(docs => { console.log(`First document: ${JSON.stringify(docs[0])}`); console.log(`Second document: ${JSON.stringify(docs[1])}`); });
IN 查询高效文档检索
Firestore 最近引入了 IN查询,它提供了一种更有效的方法来按指定 ID 获取多个文档。通过使用 FieldPath.documentId() 和 'in' 运算符,您可以构建基于 ID 列表返回文档的查询。
示例:
const firestore = getFirestore(); const query = firestore.collection('col').where(firestore.FieldPath.documentId(), 'in', ["123", "456", "789"]); query.get().then(docs => { docs.forEach(doc => { console.log(`Retrieved document with ID: ${doc.id}`); }); });
结论:
通过利用 getAll() 方法或 IN 查询,开发人员可以优化其 Firestore 数据检索操作并减少数据库的往返次数。这种方法增强了应用程序的性能和响应能力,特别是在检索多个文档或执行复杂查询时。
以上是如何在单次往返中高效地获取多个 Firestore 文档?的详细内容。更多信息请关注PHP中文网其他相关文章!