Sì perché MongoDB utilizzerà sicuramente l'indice _id (idhack
).
Nel secondo metodo - come hai osservato - non puoi dire se verrà utilizzato o meno un indice per un determinato campo.
Quindi la risposta sarà:dipende.
Se la tua collezione ha milioni di documenti o più e/o il numero di campi di ricerca è abbastanza grande dovresti preferire il primo metodo di ricerca. Soprattutto se la dimensione dell'elenco id non è piccola e/o i valori id sono adiacenti.
Se la tua collezione è piuttosto piccola e puoi tollerare una scansione completa, potresti preferire il secondo approccio.
In ogni caso, dovresti testimoniare entrambi i metodi usando explain()
.