आप नीचे एकत्रीकरण का उपयोग कर सकते हैं
$expr
आपको इसके अंदर एकत्रीकरण ऑपरेटर का उपयोग करने की अनुमति देता है। तो आप आसानी से $cond
उन उपयोगकर्ताओं के लिए एकत्रीकरण जिनके पास अनुमत भूमिकाएं
. हैं और किसने नहीं
db.users.aggregate([
{ "$match": { "name": "Charles" }},
{ "$lookup": {
"from": "roles",
"let": { "ar": "$allowedRoles" },
"pipeline": [
{ "$match": {
"$expr": {
"$cond": [
{ "$eq": [{ "$type": "$$ar" }, "missing"] },
{},
{ "$in": ["$_id", "$$ar"] }
]
}
}}
],
"as": "roles"
}}
])