Ao executar
await Order.find({}).populate({
, o Mongoose primeiro envia o find
para o servidor mongod e retorna um cursor, que é passado para preencher. Populate então recupera cada documento do cursor e envia um
find
separado para o user
coleção para recuperar os documentos correspondentes e itera esse cursor, colocando os documentos recuperados em uma matriz no documento original. Preencher pode afetar quais documentos são incorporados nos documentos originais, mas não tem nenhum recurso para remover documentos do conjunto de resultados original.
A
match
passado para preencher significará que apenas os usuários correspondentes serão adicionados ao documento original, portanto, você poderá usar filter
para eliminar quaisquer documentos no resultado que não contenham usuários.