MongoDB クエリにおける順序付きドキュメントと順序なしドキュメント
Go の mongo-driver パッケージを使用して MongoDB で検索クエリを実行する場合、開発者には 2 つのオプションがありますフィルター基準を指定するため: bson.M (順序なし) および bson.D (順序あり)。ドキュメントでは要素の順序が重要な場合に bson.D を使用することを推奨していますが、クエリの最適化への影響については不確実性が残っています。
クエリの最適化と順序構造
SQL データベースとは対照的多くの場合、クエリの順序は最適化に影響を与えませんが、bson.D 構造内の要素の順序は MongoDB のクエリの最適化に大きな影響を与えません。 MongoDB サーバーは、フィルターの順序に関係なくインデックスを効率的に利用する機能を備えています。
たとえば、複合インデックス内のフィールドが bson.D フィルターで順序どおりに指定されていない場合でも、サーバーは既存のインデックスを利用できます。索引。したがって、クエリ目的で bson.M と bson.D のどちらを選択するかは、通常、好みと使いやすさによって決まります。
他のシナリオにおける順序の重要性
要素ただし、並べ替え基準を定義する場合は、順序が重要になります。ソート フィールドの順序はドキュメントの結果の順序に影響するため、ソート宣言には bson.D を使用する必要があります。
同様に、ドキュメントの挿入時に、bson.D は、保存されたドキュメント内のフィールドの順序が、保存されているドキュメント内の順序と一致することを保証します。 bson.D 構造体で指定された順序。対照的に、bson.M は、保存されたドキュメント内のフィールドの順序が一貫していることを保証しません。
以上がMongoDB クエリ: bson.M と bson.D – 順序が重要になるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。