count
推定数を提供し、正確でない場合があります。 countDocuments
を使用する 正確なカウントを取得します。
getShardDistribution
のソースを読むことができます db.users.getShardDistribution
と入力します シェルで。構成データベースに保存されている情報を使用しているようです。
統計を期待するのは非常に合理的です データベースに保存されているものは正確ではありません。これは、クラスター内のどこかで操作が実行されるたびに最新の状態に保つにはコストがかかるためです。
一部のチャンクが1つのシャードから別のシャードにコピーされた後、これらのチャンクが元のシャードから削除される前のある時点で統計を確認しているようです。この状況では、データはクラスターに2回保存されます。この場合、統計は正確ではありません。正確なカウントを取得するには、countDocuments
を使用します 。