Да, защото MongoDB със сигурност ще използва индекса _id (idhack
).
При втория метод - както забелязахте - не можете да разберете дали индексът ще бъде използван за дадено поле или не.
Така че отговорът ще бъде:зависи.
Ако вашата колекция има милиони или повече документи и/или броят на полетата за търсене е доста голям, трябва да предпочетете първия метод за търсене. Особено ако размерът на списъка с id не е малък и/или стойностите на id са съседни.
Ако колекцията ви е доста малка и можете да понесете пълно сканиране, може да предпочетете втория подход.
Във всеки случай трябва да свидетелствате и за двата метода с помощта на explain()
.