Với MongoDB 3.4, bạn có thể chạy một đường dẫn tổng hợp sử dụng $addFields
đường dẫn và $filter
toán tử chỉ trả về Company
mảng với các phần tử phù hợp với điều kiện cho trước. Sau đó, bạn có thể bọc $filter
biểu thức với $arrayElemAt
toán tử để trả về một tài liệu về bản chất là kết hợp $unwind
chức năng bằng cách làm phẳng mảng.
Hãy làm theo ví dụ sau để hiểu khái niệm trên:
db.users.aggregate([
{ "$match": { "UserName": "administrator" } },
{
"$lookup": {
"from": 'companies',
"localField": 'CompanyID',
"foreignField": 'CompanyID',
"as": 'Company'
}
},
{
"$addFields": {
"Company": {
"$arrayElemAt": [
{
"$filter": {
"input": "$Company",
"as": "comp",
"cond": {
"$eq": [ "$$comp.CompanyName", "edt5" ]
}
}
}, 0
]
}
}
}
])