MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

bson.D vs bson.M für Suchabfragen

Sie können bson.M verwenden für den Filter führt dies normalerweise zu einer kürzeren und klareren Filterdeklaration, die Reihenfolge der Felder spielt keine Rolle, der MongoDB-Server ist intelligent genug, um passende Indizes unabhängig von der verwendeten Reihenfolge zu finden. Z.B. wenn Sie einen zusammengesetzten Index mit den Feldern A haben und B , mit einem bson.D Filterliste B zuerst dann A hindert den Server nicht daran, den vorhandenen Index zu verwenden. In diesem Fall können Sie also bson.M verwenden und bson.D , spielt keine Rolle.

Die Reihenfolge spielt beispielsweise eine Rolle, wenn Sie Sortierfelder angeben. Es spielt keine Rolle, ob Sie nach Feld A sortieren dann per Feld B , kann es eine ganz andere Reihenfolge sein als die Sortierung nach B zuerst und dann mit A . Wenn Sie also ein Sortierdokument mit mehreren Feldern angeben, sollten Sie unbedingt bson.D verwenden .

Die Reihenfolge kann auch wichtig sein (für Sie ) zum Beispiel beim Einfügen eines neuen Dokuments. Wenn Sie eine bson.M wie das Dokument, ist die Reihenfolge der Felder nicht garantiert in allen Ihren Dokumenten gleich. Wenn Sie bson.D verwenden , dann stimmt die Reihenfolge im gespeicherten Dokument mit der Reihenfolge überein, in der Sie die Felder in bson.D auflisten .