Bạn có thể sử dụng $ lookup với đường ống,
-
$match
sẽ kiểm traactive
tình trạng -
$lookup
sẽ tham gia bộ sưu tập các nhà lãnh đạo-
$match
để kiểm traleader_id
vàorganization
-
-
$match
các nhà lãnh đạo kiểm tra không phải là[]
trống rỗng -
$project
để xóaleaders
lĩnh vực
db.teams.aggregate([
{ $match: { active: 1 } },
{
$lookup: {
from: "leaders",
let: { leader_id: "$leader_id" },
as: "leaders",
pipeline: [
{
$match: {
$and: [
{ $expr: { $eq: ["$_id", "$$leader_id"] } },
{ organization: "Software Development" }
]
}
}
]
}
},
{ $match: { leaders: { $ne: [] } } },
{ $project: { leaders: 0 } }
])