我正在处理一个项目,我不确定find
光标的工作方式和光标的工作方式之间是否存在差异findOne
。findOne 只是一个包装器find().limit(1)
吗?我一直在寻找它,也许有人知道 mongodb 是否有特殊的方法。如果这有所作为,我正在使用 mongodb 的 PHP API。
Lef*_*ium 36
根据我自己的基准,find().limit(1)
是数量级的速度比findOne()
。
MongoDB 文档中存在错误或findOne()
. findOne()
执行更像是find().limit(N)
其中 N 是查询将返回的文档数。我在试图弄清楚为什么我的简单查询如此缓慢时发现了这一点!
更新:来自 10gen (MongoDB) 工程师的回应:
您正在执行的两个查询非常不同。find 查询返回一个游标,这本质上是一个无操作场景,因为没有返回实际数据(只有游标信息)。如果您调用 findOne,那么您实际上是在返回数据并关闭游标。文档肯定应该更清楚:-)
更新:确实,如果find().limit(1)
检索到文档,数量级的速度差异似乎消失了。此外,我无法重现与 MongoDB JavaScript 驱动程序的主要速度差异。我最初使用 MongoDB Java 驱动程序进行基准测试。
归档时间: |
|
查看次数: |
31599 次 |
最近记录: |