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