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
.