आप नीचे $facet
आज़मा सकते हैं एकत्रीकरण
$count
एकत्रीकरण आपको हमेशा केवल एक मिलान के लिए गणना देगा ($match
) स्थिति। इसलिए आपको अपनी प्रत्येक गणना को आगे कई अनुभागों में विभाजित करने की आवश्यकता है और यही $facet
है इनपुट दस्तावेज़ों के एक ही सेट पर एक ही चरण में कई एकत्रीकरण पाइपलाइनों को प्रोसेस द्वारा प्रदान करता है।
db.collection.aggregate([
{ "$facet": {
"Total": [
{ "$match" : { "ReleaseDate": { "$exists": true }}},
{ "$count": "Total" },
],
"Released": [
{ "$match" : {"ReleaseDate": { "$exists": true, "$nin": [""] }}},
{ "$count": "Released" }
],
"Unreleased": [
{ "$match" : {"ReleaseDate": { "$exists": true, "$in": [""] }}},
{ "$count": "Unreleased" }
]
}},
{ "$project": {
"Total": { "$arrayElemAt": ["$Total.Total", 0] },
"Released": { "$arrayElemAt": ["$Released.Released", 0] },
"Unreleased": { "$arrayElemAt": ["$Unreleased.Unreleased", 0] }
}}
])
आउटपुट
[{
"Total": 3,
"Released": 2,
"Unreleased": 1
}]