sql >> Database teknologi >  >> NoSQL >> MongoDB

Indlejret befolkningsfiltrering er MongoDB

Når du udfører await Order.find({}).populate({ , Mongoose sender først find til mongod-serveren og returnerer en markør, som sendes videre for at udfylde.

Populate henter derefter hvert dokument fra markøren og sender et separat find til user samling for at hente de(t) matchende dokument(er) og gentage denne markør, og placere de hentede dokumenter i en matrix i det originale dokument.

Udfyldning kan påvirke, hvilke dokumenter der er indlejret i de originale dokumenter, men den har ingen mulighed for at fjerne dokumenter fra det originale resultatsæt.

match videregivet til at udfylde vil betyde, at kun matchende brugere bliver tilføjet til det originale dokument, så du burde være i stand til at bruge filter for at fjerne eventuelle dokumenter i resultatet, der ikke indeholder nogen brugere.




  1. Optimeret måde at forespørge på i MongoDB ved hjælp af $in vs $or

  2. MongoDB pull array-element fra en samling

  3. $elemmatch virker ikke i MongoDB

  4. Mongodb tilføjer et nyt felt i et eksisterende dokument med specifik position