現象:通過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.