sql >> Databasteknik >  >> NoSQL >> MongoDB

Kapslad populationsfiltrering är MongoDB

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.




  1. Hur kan jag köra redis på en enda server på olika portar?

  2. Mongoose flera synkrona hitta för att återanvända objekt-ID

  3. Mongo-autentisering inuti Docker

  4. Matcha minst N element i en array till en lista med villkor