Zde je shrnutí rozdílů:
$lookup
- lze použít pouze s
aggregate - lze použít pouze k načtení odkazovaných dokumentů z neostříhané sbírky
- může stáhnout odkazované dokumenty podle libovolného pole
- obecně výkonnější, protože se jedná o operaci na straně serveru
- vyžaduje MongoDB 3.2+
Mongoose populate()
- lze použít s
findaaggregate - lze jej použít k načtení odkazovaných dokumentů ze sdílených i neskartovaných sbírek
- může stahovat pouze odkazované dokumenty podle
_id - žádný požadavek na verzi MongoDB