A segunda versão adiciona uma execução de pipeline de agregação para cada documento na coleção unida .
A documentação diz:
O pipeline é executado para cada documento na coleção, não para cada documento correspondente.
Dependendo do tamanho da coleção (tanto o número de documentos quanto o tamanho do documento), isso pode levar um tempo razoável.
Faz sentido - todos os documentos adicionais devido à remoção do limite também devem ter o pipeline de agregação executado para eles.
É possível que a execução por documento do pipeline de agregação não seja tão otimizada quanto poderia ser. Por exemplo, se o pipeline for configurado e desmontado para cada documento, pode haver facilmente mais sobrecarga isso do que nas condições $match.
A execução de um pipeline de agregação por documento associado oferece flexibilidade adicional. Se você precisar dessa flexibilidade, pode fazer sentido executar o pipeline, embora o desempenho precise ser considerado independentemente. Se você não fizer isso, é sensato usar uma abordagem mais eficiente.