我正在对 mongo(版本 2.4 和 3.2)集合中的文档进行计数。馆藏很大,3821085个文档。我需要用引用来计算所有文档_id。我尝试了两种不同的查询:
db.SampleCollection.find({"field._id" : ObjectId("UUID")}).count()
db.SampleCollection.count({"field._id" : ObjectId("UUID")})
此查询需要很长时间。太多时间我没有让它完成,超过 5 分钟,我害怕并杀死它。
对于此集合field._id不是索引。我没有相关信息可以在此查询中使用索引。
有没有更好的方法来计算 mongo 中的文档。
更新:
我知道我需要一个关于该字段的索引field._id。如果我这样做有其做法将在一个大集合更好地履行该领域的指数db.SampleCollection.find(...).count()或db.SampleCollection.count(...)?或者两者之间没有区别?
在您的场景中,您应该有一个索引。
索引支持在 MongoDB 中高效执行查询。如果没有索引,MongoDB 必须执行集合扫描,即扫描集合中的每个文档,以选择那些与查询语句匹配的文档。
更新:
现在提出的问题有所不同。是不是collection.find({}).count()更快collection.count()呢?
根据 MongoDB 文档:
count() 等效于 db.collection.find(query).count() 构造。
| 归档时间: |
|
| 查看次数: |
8481 次 |
| 最近记录: |