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
find
aaggregate
- 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