Dzięki wątku github udostępnione przez Grégory NEUT w komentarzach do pytania udało mi się ustalić pewne fakty:
- Metoda populate() Mongoose nie używa zakulisowego wyszukiwania $ MongoDB. Po prostu tworzy kolejne zapytanie do bazy danych.
- Mongoose nie ma funkcji, których nie ma MongoDB.
populate()po prostu wykonuje dwa lub więcej zapytań.
Moim zdaniem są miejsca, w których można użyć populate() i inni do korzystania z $lookup . W przypadku bardziej złożonych zapytań $lookup w potoku agregacji będzie działać najlepiej.