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

In che modo MongoDB valuta più $ o istruzioni?

MongoDB eseguirà ogni clausola dell'operazione $or come una query separata e rimuoverà i duplicati come passaggio di post-elaborazione. In quanto tale, ogni clausola può utilizzare un indice separato che è spesso molto utile.

In altre parole, NON esaminerà 1 documento, vedrà quale delle clausole OR si applica ed eseguirà un early-out se la prima clausola è una corrispondenza. Piuttosto esegue una query completa del set di dati per clausola e deduplica dopo il fatto. Questo può sembrare meno che efficiente, ma in pratica è quasi sempre più veloce poiché il primo approccio sarebbe in grado di raggiungere al massimo un indice per tutte le clausole che raramente è efficiente.