O MongoDB executará cada cláusula da operação $or como uma consulta separada e removerá as duplicatas como uma passagem de pós-processamento. Como tal, cada cláusula pode usar um índice separado, o que geralmente é muito útil.
Em outras palavras, ele NÃO examinará 1 documento, verá qual das cláusulas OR se aplica e fará uma saída antecipada se a primeira cláusula for uma correspondência. Em vez disso, ele faz uma consulta completa do conjunto de dados por cláusula e desduplica após o fato. Isso pode parecer pouco eficiente, mas na prática é quase sempre mais rápido, pois a primeira abordagem só seria capaz de atingir no máximo um índice para todas as cláusulas, o que raramente é eficiente.