sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongo $in med sammansatt index

Eftersom du redan skapar ett sammansatt index för (a, b) , alla dina klausuluttryck stöds av index -> mongo kommer att använda index scan istället för samling scan. Det är förmodligen tillräckligt snabbt.

Referens:$or Clauses and Indexes

Nu om din fråga

$in matcha hela fältet. Om du vill matcha (a,b) sedan uppenbarligen (a,b) måste bli ett inbäddat objekt för att söka med $in .

Inte säker på om att göra inbäddade objekt passar ditt nuvarande schema/krav. Men om så är fallet, $in har känt för bättre prestanda jämfört med $or :

I det här fallet, om du har inbäddat objekt som:{e: {a: 'x', b: 'y'}} sedan db.collections.createIndex({e: 1}) ihopkopplad med $in kommer att påskynda saker och ting




  1. mongodb db.collection.find({}) gör ingenting efter .limit(101)

  2. Spring Data:Unikt fält i MongoDB-dokument

  3. Delmatchningar med mongos primitiva paket

  4. MongoDB:Inbäddade användare i kommentarer