5

私の問題は次のとおりです。ユーザーのコレクションがあります。私は見つけようとしていますが、_id=xxx持っているユーザーはいますかsomevalue > 5

orを使用すると、何が速くなるのだろうfind(...).count() > 0findOne(...) != null?または、他のより高速な/より良い方法がありますか?

4

2 に答える 2

4

どちらも一意の_idの境界を制限しているため、クエリ時間の違いはほとんど無視できるため、すぐに見つかります。countdb はドキュメント全体ではなく int を返すため、ここで唯一のわずかなエッジが に行きます。したがって、節約される時間は、純粋にデータベースからクライアントへのデータ転送によるものです。

そうは言っても、あなたの目標が存在するクエリを実行することであり、データを気にしない場合は、count

于 2012-06-27T18:32:19.547 に答える
1

count() を使用すると、find() とは異なり、ドキュメントがキャッシュに固定されないため、メモリが節約されます。mongodb やその他の DB を使用する場合、メモリは最も貴重なリソースです...高速ディスクに加えて。

于 2013-01-10T19:11:14.093 に答える