mongodb - Mongo:使用 .find({_id: id}) 与 .findOne({_id: id}) 是否相同?
问题描述
我问这个问题的表现是明智的——知道有一个独特的文件id
。
MyCollection.find({_id: id}) //this should return only one document - id is unique
对比
MyCollection.findOne({_id: id}) //this is equivalent to .find({_id: id}).limit(1) from what I've read
我的第一个想法是,无论过滤器如何,.find
都必须通过集合,因此在.findOne
我只想检索一个文档的情况下更快,对吗?或者也许因为_id
总是被索引,也许没有区别?
我不是在问函数的输出,这是一个优化/性能问题。
解决方案
在这种特殊情况下,没有性能差异(因为唯一索引,是的)。
可能存在响应形状差异。我对猫鼬不熟悉,但是在mongodb shell中,find()
返回一个游标(立即枚举)并findOne()
直接返回文档。
推荐阅读
- c# - Prevent calling async method while the same instance is under process
- c++ - moveToThread vs deriving from QThread in Qt
- php - PHP发送链接以获取文件
- wordpress - 在 WordPress 网站的子页面中集成活动日历
- php - 如何将我的 htaccess 用于子目录而不是根目录?
- django - 如何预先选择 django forms.CheckboxSelectMultiple
- javascript - 为什么 console.log() 创建 /**id:4**/ 和 /**ref:4**/ 值?
- smartcard - nfc阅读器(PN532)的实际阅读速度是多少?
- reactjs - 如何在列数据网格中仅选择大于...的值
- javascript - 如何在angularjs中接收从另一个页面发送的POST数据