Sim porque o MongoDB certamente usará o índice _id (
idhack
). No segundo método - como você observou - você não pode dizer se um índice será usado ou não para um determinado campo.
Então a resposta será:depende.
Se a sua coleção tiver milhões de documentos ou mais, e/ou o número de campos de pesquisa for muito grande, você deve preferir o primeiro método de pesquisa. Especialmente se o tamanho da lista de ids não for pequeno e/ou os valores de id forem adjacentes.
Se sua coleção for muito pequena e você puder tolerar uma varredura completa, talvez prefira a segunda abordagem.
De qualquer forma, você deve testemunhar ambos os métodos usando
explain()
.