私の問題は次のとおりです。ユーザーのコレクションがあります。私は見つけようとしていますが、_id=xxx
持っているユーザーはいますかsomevalue > 5
。
orを使用すると、何が速くなるのだろうfind(...).count() > 0
かfindOne(...) != null
?または、他のより高速な/より良い方法がありますか?
私の問題は次のとおりです。ユーザーのコレクションがあります。私は見つけようとしていますが、_id=xxx
持っているユーザーはいますかsomevalue > 5
。
orを使用すると、何が速くなるのだろうfind(...).count() > 0
かfindOne(...) != null
?または、他のより高速な/より良い方法がありますか?
どちらも一意の_idの境界を制限しているため、クエリ時間の違いはほとんど無視できるため、すぐに見つかります。count
db はドキュメント全体ではなく int を返すため、ここで唯一のわずかなエッジが に行きます。したがって、節約される時間は、純粋にデータベースからクライアントへのデータ転送によるものです。
そうは言っても、あなたの目標が存在するクエリを実行することであり、データを気にしない場合は、count
count() を使用すると、find() とは異なり、ドキュメントがキャッシュに固定されないため、メモリが節約されます。mongodb やその他の DB を使用する場合、メモリは最も貴重なリソースです...高速ディスクに加えて。