När du kör await Order.find({}).populate({
, Mongoose skickar först find
till mongod-servern och returnerar en markör, som skickas vidare för att fylla.
Populate hämtar sedan varje dokument från markören och skickar en separat find
till user
samling för att hämta matchande dokument, och itererar den markören, placerar de hämtade dokumenten i en array i originaldokumentet.
Fylla kan påverka vilka dokument som är inbäddade i originaldokumenten, men det har inte någon möjlighet att ta bort dokument från den ursprungliga resultatuppsättningen.
match
skickas till att fylla innebär att endast matchande användare läggs till i originaldokumentet, så du bör kunna använda filter
för att eliminera alla dokument i resultatet som inte innehåller några användare.