count
предоставя приблизителен брой и може да не е точен. Използвайте countDocuments
за да получите точен брой.
Можете да прочетете източника на getShardDistribution
като напишете db.users.getShardDistribution
в черупката. Изглежда, че използва информация, съхранена в конфигурационната база данни.
Напълно разумно е да се очаква, че статистиката съхранявани от базата данни, не са съвсем точни. Това е така, защото има цена те да бъдат актуални винаги, когато се извършва някаква операция където и да е в клъстера.
Изглежда, че гледате статистика в даден момент, след като някои парчета са били копирани от един шард в друг и преди тези парчета да бъдат премахнати от оригиналния шард. В тази ситуация данните се съхраняват два пъти в клъстера. Статистиката в случая не е точна. За да получите точен брой, използвайте countDocuments
.