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