Dưới đây là tóm tắt về sự khác biệt:
$lookup
- chỉ có thể được sử dụng với
aggregate
- chỉ có thể được sử dụng để lấy các tài liệu được tham chiếu từ bộ sưu tập chưa được quản lý
- có thể lấy các tài liệu được tham chiếu theo bất kỳ trường nào
- thường hoạt động hiệu quả hơn vì đó là hoạt động phía máy chủ
- yêu cầu MongoDB 3.2+
Mongoose populate()
- có thể được sử dụng với
find
vàaggregate
- có thể được sử dụng để lấy các tài liệu được tham chiếu từ cả hai bộ sưu tập đã phân đoạn và chưa được đánh dấu
- chỉ có thể lấy các tài liệu được tham chiếu bằng
_id
- không yêu cầu phiên bản MongoDB