あたかもケーキであるかのように、どこでも ObjectIds を検索しています。
これでよろしいですか?_id
フィールドは狂ったように検索されるはずですよね?
より正確な答え: MongoDB は B-Tree インデックスを使用します。B-Tree での特定の値の検索は、平均および最悪の場合で O(log n) の複雑さを持ち、かなり高速であると見なすことができます (つまり、バイナリ検索)。ただし、一定の複雑さ = O(1) ではないため、インデックスのサイズが使用可能な RAM よりも大きくなると、速度が低下する可能性があります。(MongoDB はインデックスを RAM に保持しようとします。ディスク上のインデックスを検索するために必要なすべての IO により、クエリが大幅に遅くなります)。
_idは主キーです。インデックスが付けられています。もちろん速いです。
ObjectIds
、データ アクセスの主要な方法である場合、MongoDB からデータを取得する最速の方法になります。私たちは MongoDB を、ほとんどのデータ アクセスの鍵付きリポジトリとして利用しています。あなたがやっていることを行うと、素晴らしい結果が得られます。
_id フィールドのインデックスは、mongo とデフォルトの主キーによって自動作成されます。速度的には、_id フィールドでドキュメントにアクセスするのが超高速になります。
どのような懸念がありますか?