Như tài liệu bạn trích dẫn cho biết, bạn không thể sử dụng $lookup
trên một bộ sưu tập đã chia nhỏ. Vì vậy, cách giải quyết tốt nhất là tự thực hiện tra cứu trong một truy vấn riêng biệt.
- Thực hiện
aggregate
của bạn truy vấn. - Kéo các giá trị "localField" từ kết quả truy vấn của bạn vào một mảng, có thể bằng cách sử dụng
Array#map
. - Thực hiện
find
truy vấn đối với tập hợp "from", sử dụng truy vấn như{foreignField: {$in: localFieldArray}}
- Hợp nhất các kết quả của bạn thành bất kỳ định dạng nào bạn cần.
Đừng để $lookup
giới hạn ngăn bạn phân tích các bộ sưu tập yêu cầu nó cho khả năng mở rộng, chỉ cần tự thực hiện chức năng tra cứu.