Możesz użyć bson.M dla filtra zwykle skutkuje to krótszą i bardziej przejrzystą deklaracją filtra, kolejność pól nie ma znaczenia, serwer MongoDB jest wystarczająco sprytny, aby znaleźć pasujące indeksy niezależnie od użytej kolejności. Np. jeśli masz indeks złożony z polami A i B , używając bson.D filtruj listę B najpierw potem A nie uniemożliwi serwerowi korzystania z istniejącego indeksu. Więc w tym przypadku możesz użyć bson.M i bson.D , to nie ma znaczenia.
Kolejność ma znaczenie na przykład podczas określania pól sortowania. To ma znaczenie, jeśli sortujesz według pola A następnie przez pole B , może to być zupełnie inna kolejność niż sortowanie według B najpierw, a potem przez A . Więc kiedy określasz dokument sortowania mający wiele pól, zdecydowanie powinieneś użyć bson.D .
Kolejność również może mieć znaczenie (dla Ciebie ) na przykład podczas wstawiania nowego dokumentu. Jeśli używasz bson.M jako dokument, nie ma gwarancji, że kolejność pól będzie taka sama we wszystkich twoich dokumentach. Kiedy używasz bson.D , zamówienie w zapisanym dokumencie będzie zgodne z zamówieniem, gdy wymienisz pola w bson.D .