sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur utvärderar MongoDB flera $eller uttalanden?

MongoDB kommer att exekvera varje klausul i $or-operationen som en separat fråga och ta bort dubbletter som ett efterbearbetningspass. Som sådan kan varje sats använda ett separat index, vilket ofta är mycket användbart.

Med andra ord kommer den INTE att titta på 1 dokument, se vilken av OR-klausulerna som gäller och göra en early-out om den första klausulen är en matchning. Snarare gör den en fullständig datauppsättningsfråga per klausul och de-duperar i efterhand. Detta kan tyckas mindre än effektivt men i praktiken går det nästan alltid snabbare eftersom det första tillvägagångssättet bara skulle kunna nå högst ett index för alla klausuler, vilket sällan är effektivt.



  1. Förhindrar databasrelaterade tävlingsförhållanden i Node.js

  2. vårdata mongodb kartläggning dynamiskt fält

  3. Vad är Express.js?

  4. MongoDB-fråga med villkorlig grupp för uttalande