4

一般的なカウント クエリは、

int count = collection.Find(filter).Count();

これで、フィルターに従ってすべてのレコードが読み込まれます。100 万のレコードがあり、そのうち 50 万がフィルターに一致するとします。つまり、0.5 のドキュメントでコレクションが既に満たされていることになります。ドキュメントが必要な場合はこれで十分ですが、カウントを知りたいだけで、実際にはドキュメントが必要ない場合は、メモリのためにどうすればよいでしょうか。

私はこのようなことをすることができます

int count = collection.Find(filter).SetLimit(1).Count();

これにより、最初の式と同じカウントが得られますが、最初の式としてメモリが使用されないことを願っています。すべてのドキュメントをロードせずに「カウント」を見つける正しい方法を知るのに役立ちます。ありがとう。

4

1 に答える 1

10

CountAsync次の方法ではなく、明示的な方法を使用する必要がありますFind

long result = await collection.CountAsync(Builders<Hamster>.Filter.Eq(_ => _.Name, "bar"));
于 2015-09-11T11:30:30.090 に答える