sql >> Database >  >> NoSQL >> MongoDB

Mongo $in met samengestelde index

Aangezien u al een samengestelde index maakt voor (a, b) , al uw clausules worden ondersteund door indexen -> mongo zal indexscan gebruiken in plaats van collectiescan. Het is waarschijnlijk snel genoeg.

Referentie:$or Clausules en Indexen

Nu over uw vraag

$in overeenkomen met het hele veld. Als u wilt overeenkomen met (a,b) dan natuurlijk (a,b) moet een ingesloten object worden om te zoeken met $in .

Ik weet niet zeker of het maken van een ingesloten object past bij uw huidige schema/vereiste. Maar als dat het geval is, $in staat bekend om betere prestaties in vergelijking met $or :

In dit geval, als u een ingesloten object heeft zoals:{e: {a: 'x', b: 'y'}} dan db.collections.createIndex({e: 1}) gecombineerd met $in zal dingen versnellen




  1. Uitzondering krijgen tijdens het doen van block() op Mono-object Ik kreeg terug van ReactiveMongoRepository-object

  2. Subdocumenten aftrekken van verzameling in geaggregeerde pijplijn

  3. Databasestatuscontrole automatiseren

  4. Hernoemen van belangrijke naamgevingsconventies?