使用.where()查询firestore和查找特定的www.example.com有什么区别doc.id?
假设我可以选择以两种方式构建我的收藏:
- collection 1,具有doc.id = myspecificIDstring我可以像db.collection('collection 1').doc('myspecificIDstring')这样查询
- collection 2有一个名为“theID”的字段:“myspecificIDstring”我可以像db.collection('collection 2').where('theID','==','myspecificIDstring')这样查询
在读取/性能方面是否存在任何差异?我正在考虑如何构建我的后端
两种方法我都试过了,看起来都一样...
1条答案
按热度按时间3phpmpom1#
.doc('myspecificIDstring')
:该方法提供了对文档的直接引用,导致一个读取操作来检索指定的文档。它是有效的快速获取一个已知的文件。.where('theID', '==', 'myspecificIDstring')
:此方法执行查询并引发对整个集合的读取操作。Firestore索引用于有效地将结果缩小到匹配指定条件的文档。如果您在'theID'字段上有一个索引,那么性能应该是合理的。然而,在没有适当索引的情况下查询大型集合可能导致延迟增加和成本提高。.doc更有效。