bson.M
を使用できます フィルタの場合、通常、フィルタ宣言が短く明確になります。フィールドの順序は重要ではありません。MongoDBサーバーは、使用されている順序に関係なく、一致するインデックスを見つけるのに十分スマートです。例えば。フィールドがA
の複合インデックスがある場合 およびB
、bson.D
を使用 フィルタリストB
最初にA
サーバーが既存のインデックスを使用することを妨げることはありません。したがって、この場合はbson.M
を使用できます およびbson.D
、それは問題ではありません。
たとえば、並べ替えフィールドを指定する場合、順序は重要です。フィールドA
で並べ替えても問題ありません 次にフィールドB
、B
による並べ替えとは完全に異なる順序である可能性があります 最初にA
で 。したがって、複数のフィールドを持つ並べ替えドキュメントを指定する場合は、必ずbson.D
を使用する必要があります。 。
順序も重要な場合があります(あなた )たとえば、新しいドキュメントを挿入する場合。 bson.M
を使用する場合 ドキュメントとして、フィールドの順序がすべてのドキュメントで同じであるとは限りません。 bson.D
を使用する場合 の場合、保存されたドキュメントの順序は、bson.D
のフィールドを一覧表示したときの順序と一致します。 。