count
fornisce un conteggio stimato e potrebbe non essere accurato. Usa countDocuments
per ottenere un conteggio accurato.
Puoi leggere il sorgente di getShardDistribution
digitando db.users.getShardDistribution
nel guscio. Sembra utilizzare le informazioni memorizzate nel database di configurazione.
È abbastanza ragionevole aspettarsi che le statistiche memorizzati dal database non sono esattamente accurati. Questo perché c'è un costo per tenerli aggiornati ogni volta che viene eseguita un'operazione in qualsiasi punto del cluster.
Sembra che tu stia guardando le statistiche in un momento dopo che alcuni blocchi sono stati copiati da uno shard all'altro e prima che questi blocchi vengano rimossi dallo shard originale. In questa situazione i dati vengono archiviati due volte nel cluster. Le statistiche non sono accurate in questo caso. Per ottenere un conteggio accurato, usa countDocuments
.