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のフィールドを一覧表示したときの順序と一致します。 。