【发布时间】:2019-02-22 17:48:33
【问题描述】:
我问这个问题是出于性能方面的考虑 - 知道有一个带有 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总是被索引,也许没有区别?
我不是在问函数的输出,这是一个优化/性能问题。
【问题讨论】:
-
@kRiZ 我的问题是关于性能,而不是函数的输出。
-
可能这对性能非常清楚。您的问题已经在网站上进行了很长时间的尝试和尘封。 stackoverflow.com/questions/33156703/…
-
这也是一个不同的问题,我想知道调用
.find(没有.limit(1)但知道它应该返回一个元素)是否更快/更慢/与调用.findOne()相同
标签: mongodb optimization mongoose