आपको $filter
. का उपयोग करने की आवश्यकता है external
को फ़िल्टर करने के लिए एकत्रीकरण मूल और internal
$size
. के साथ मूल सरणियों की लंबाई की गणना करने के लिए एकत्रीकरण।
कुछ इस तरह
db.collection.aggregate([
{ "$addFields": {
"internalUsersCount": {
"$size": {
"$filter": {
"input": "$participants",
"as": "part",
"cond": { "$eq": ["$$part.origin", "internal"]}
}
}
},
"externalUsersCount": {
"$size": {
"$filter": {
"input": "$participants",
"as": "part",
"cond": { "$eq": ["$$part.origin", "external"] }
}
}
}
}}
])
आउटपुट
[
{
"conferenceName": "myFirstConference",
"endDate": 1535722420,
"externalUsersCount": 1,
"internalUsersCount": 1,
"startDate": 1535722327
}
]