Mongo:使用.find({_ id:id})与.findOne({_ id:id})是否相同?

时间:2019-02-22 00:16:27

标签: mongodb optimization mongoose

我问这个问题是明智的选择-知道有一个ui.draggable.find('.employee_name').html()的唯一文档。

id

vs

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总是被索引,也许没有区别?

我不是在问函数的输出,这是一个优化/性能问题。

1 个答案:

答案 0 :(得分:1)

在这种特殊情况下,没有性能差异(因为唯一索引,所以是)。

可能存在响应形状差异。我不熟悉mongoose,但是在mongodb shell中,find()返回一个游标(立即枚举),而findOne()直接返回该文档。