sql >> Database >  >> NoSQL >> MongoDB

Hoe evalueert MongoDB meerdere $or-statements?

MongoDB voert elke clausule van de $or-bewerking uit als een afzonderlijke query en verwijdert duplicaten als een postverwerkingspas. Als zodanig kan elke clausule een aparte index gebruiken, wat vaak erg handig is.

Met andere woorden, het zal NIET naar 1 document kijken, kijken welke van de OR-clausules van toepassing zijn en een early-out doen als de eerste clausule een overeenkomst is. Het doet eerder een volledige dataset-query per clausule en ontdubbelt achteraf. Dit lijkt misschien minder efficiënt, maar in de praktijk is het bijna altijd sneller, aangezien de eerste benadering slechts in staat zou zijn om maximaal één index te raken voor alle clausules, wat zelden efficiënt is.



  1. Mongoose (node.js-module) veroorzaakt hoog CPU-gebruik

  2. Hoe zoek ik een woord of tekenreeks op alle velden in het document met MongoDB?

  3. Modellering van subcollecties in MongoDB Realm Sync

  4. Wat is een goede databasekeuze voor een kleine .NET-toepassing?