Можете да използвате 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 .