Tiêu đề nói lên tất cả. Làm thế nào đến nếu một tài liệu không dẫn đến bất kỳ tài liệu bên ngoài phù hợp theo lĩnh vực phù hợp của nó, sau đó làm thế nào đến nó không được bao gồm trong bộ kết quả của đường ống?
Tôi đang thử nghiệm các trình tổng hợp mới trong Mongo 3.2 và tôi đã đi xa để thực hiện tra cứu mảng lồng nhau bằng cách mở thư đầu tiên và sau đó nhóm các tài liệu sao lưu. Tất cả những gì tôi còn lại là để có kết quả bao gồm tất cả các tài liệu cục bộ không đáp ứng các tiêu chí $lookup
, đó là những gì tôi nghĩ là định nghĩa tiêu chuẩn về "tham gia bên ngoài bên trái".
Dưới đây là các truy vấn:
db.users.aggregate([
{
$unwind: "$profile",
$unwind: "$profile.universities"
},
{
$lookup: {
from: "universities",
localField: "profile.universities._id",
foreignField: "_id",
as: "profile.universities"
}
},
{
$group: {
_id: "$_id",
universities: {
$addToSet: "$profile.universities"
}
}
}
]).pretty()
Vì vậy, nếu tôi có một user
có một profile.universities
mảng trống rỗng, sau đó tôi cần nó để được bao gồm trong tập hợp kết quả không phụ thuộc vào $lookup
trả lại bất kỳ trận đấu, nhưng nó không phải. Làm thế nào tôi có thể làm điều này, và bất kỳ lý do tại sao Mongo xây dựng $lookup
để hoạt động theo cách này?
tuyệt vời, đây là chính xác vấn đề. Cảm ơn bạn rất nhiều!! –