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

Wie wertet MongoDB mehrere $or-Anweisungen aus?

MongoDB führt jede Klausel der $or-Operation als separate Abfrage aus und entfernt Duplikate in einem Nachbearbeitungsdurchgang. Daher kann jede Klausel einen separaten Index verwenden, was oft sehr nützlich ist.

Mit anderen Worten, es wird sich NICHT 1 Dokument ansehen, sehen, welche der OR-Klauseln zutreffen, und ein Early-out durchführen, wenn die erste Klausel eine Übereinstimmung ist. Vielmehr führt es eine vollständige Datensatzabfrage pro Klausel durch und dedupliziert im Nachhinein. Dies mag weniger als effizient erscheinen, aber in der Praxis ist es fast immer schneller, da der erste Ansatz nur höchstens einen Index für alle Klauseln treffen könnte, was selten effizient ist.