mongo count不准确问题
现象:通过count函数计算出的记录数量总是比实际少一条
如下:目前该collection中共有421条记录
然而通过count函数计算出的结果是420,比实际少了一条
查看了mongo的官方文档:
https://docs.mongodb.com/manual/reference/method/db.collection.count/
发现里面有提到这么一段:
因为目前项目中mongodb并没有使用共享集群,猜测可能就是上面这个问题导致的:因为某次的非正常关机导致了chekpoint的失败,计算count的时候也没有指定查询条件,直接从metadata读取
count数,导致计算出的count数与实际不一致。
查看了下这个collection的statistics:
确实count的值不准确。确实就是上面这种错误了。
解决方法:
1.指定一个查询条件
2.通过db.collection.validata(true) 重新存储正确的statistics.