Haf*_*fez 4 mongodb database-performance
我试图找出我的数据库中是否存在文档,并且我很好奇,这样做的最佳方法是什么?使用
User.findOne(query).select('_id')
要么
User.count(query)
一方面,findOne返回一个24进制的字符串,而count仅返回一个整数;另一方面,.count它将遍历整个集合,而.findOne将在第一个匹配的文档处停止。
我找到的与此问题相关的唯一答案是这个问题,找不到其他答案,这个答案得到了支持.count,Mongo在性能方面做了很多工作,这个问题是6年前的。
什么更有价值?内存(findOne)或处理能力(计数)?
在某些情况下,count您可能会得到不正确的结果。而且,性能会比慢findOne()。
在分片群集上,如果存在孤立文档或正在进行块迁移,则db.collection.count()可能导致计数不准确。
在使用Wired Tiger存储引擎不正常关闭mongod之后,count()报告的计数统计信息可能不准确。
当您真正要检查文档的存在时,我认为findOne()是更好的选择。
| 归档时间: |
|
| 查看次数: |
1010 次 |
| 最近记录: |