Grâce à un thread github partagé par Grégory NEUT dans les commentaires de la question, j'ai pu établir certains faits :
- La méthode populate() de Mongoose n'utilise pas la recherche $ de MongoDB dans les coulisses. Il fait simplement une autre requête à la base de données.
- Mongoose n'a pas de fonctionnalités que MongoDB n'a pas.
populate()
effectue simplement deux requêtes ou plus.
À mon avis, il y a des endroits où utiliser populate()
et d'autres à utiliser $lookup
. Pour les requêtes plus complexes $lookup
dans un pipeline d'agrégation fonctionnerait mieux.