sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongo $in med sammensat indeks

Da du allerede opretter et sammensat indeks for (a, b) , alle dine sætningsudtryk understøttes af indekser -> mongo vil bruge indeksscanning i stedet for samlingsscanning. Det er nok hurtigt nok.

Reference:$or klausuler og indekser

Nu om dit spørgsmål

$in matche hele feltet. Hvis du vil matche (a,b) så åbenbart (a,b) skal blive et indlejret objekt for at søge med $in .

Ikke sikker på, om det at lave indlejrede objekter passer til dit nuværende skema/krav. Men hvis det er tilfældet, $in har kendt for bedre ydeevne sammenlignet med $or :

I dette tilfælde, hvis du har indlejret objekt som:{e:{a:'x', b:'y'}} derefter db.collections.createIndex({e:1}) parret med $in vil fremskynde tingene




  1. MongoDB Atlas-godkendelse mislykkedes på Python

  2. Kan det betale sig at forkorte MongoDB ejendomsnavne?

  3. Sådan opdaterer du et felt ved hjælp af dets tidligere værdi i MongoDB/Mongoose

  4. WebSocket-forbindelse til <URL> mislykkedes:Fejl under WebSocket-håndtryk:Uventet svarkode:521