MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Conteggio errato di documenti nel cluster di shard MongoDB

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 .