MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Le filtrage de peuplement imbriqué est MongoDB

Lors de l'exécution de await Order.find({}).populate({ , Mongoose envoie d'abord le find au serveur mongod et renvoie un curseur, qui est transmis pour peupler.

Populate récupère ensuite chaque document à partir du curseur et envoie un find séparé à l'user collection pour récupérer le ou les documents correspondants, et itère ce curseur, en plaçant les documents récupérés dans un tableau dans le document d'origine.

Le remplissage peut affecter les documents qui sont incorporés dans les documents d'origine, mais il n'a pas la capacité de supprimer des documents de l'ensemble de résultats d'origine.

La match passé à peupler signifie que seuls les utilisateurs correspondants sont ajoutés au document d'origine, vous devriez donc pouvoir utiliser filter pour éliminer tous les documents du résultat qui ne contiennent aucun utilisateur.