Oui car MongoDB utilisera certainement l'index _id (idhack
).
Dans la deuxième méthode - comme vous l'avez observé - vous ne pouvez pas dire si un index sera utilisé ou non pour un certain champ.
Alors la réponse sera :ça dépend.
Si votre collection compte des millions de documents ou plus, et/ou que le nombre de champs de recherche est assez important, vous devriez préférer la première méthode de recherche. Surtout si la taille de la liste d'identifiants n'est pas petite et/ou si les valeurs d'identifiants sont adjacentes.
Si votre collection est assez petite et que vous pouvez tolérer une analyse complète, vous préférerez peut-être la seconde approche.
Dans tous les cas, vous devez témoigner des deux méthodes en utilisant explain()
.