count
fornece uma contagem estimada e pode não ser precisa. Use countDocuments
para obter uma contagem precisa. Você pode ler a fonte de
getShardDistribution
digitando db.users.getShardDistribution
na casca. Parece usar informações armazenadas no banco de dados de configuração. É bastante razoável esperar que as estatísticas armazenados pelo banco de dados não são exatamente precisos. Isso ocorre porque há um custo para mantê-los atualizados sempre que qualquer operação for executada em qualquer lugar do cluster.
Você parece estar olhando para as estatísticas em um momento depois que alguns fragmentos foram copiados de um fragmento para outro e antes que esses fragmentos sejam removidos do fragmento original. Nesta situação, os dados são armazenados duas vezes no cluster. As estatísticas não são precisas neste caso. Para obter uma contagem precisa, use
countDocuments
.