Här är en sammanfattning av skillnaderna:
$lookup
- kan endast användas med
aggregate - kan endast användas för att hämta refererade dokument från odelade samlingar
- kan hämta refererade dokument från vilket fält som helst
- generellt mer presterande eftersom det är en operation på serversidan
- kräver MongoDB 3.2+
Mongoose populate()
- kan användas med
findochaggregate - kan användas för att hämta refererade dokument från både klippta och odelade samlingar
- kan bara hämta refererade dokument med
_id - inga MongoDB-versionskrav