MongoDB में $count
एग्रीगेशन ऑपरेटर एक दस्तावेज़ को एग्रीगेशन पाइपलाइन में अगले चरण में भेजता है जिसमें वर्तमान चरण में इनपुट किए गए दस्तावेज़ों की संख्या की गणना होती है।
उदाहरण
मान लीजिए हमारे पास pets
. नामक संग्रह है निम्नलिखित दस्तावेजों के साथ:
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 } { "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 } { "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 } { "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 } { "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 } { "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 } { "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }
हम संग्रह में कुत्तों की संख्या गिनने के लिए निम्नलिखित एकत्रीकरण ऑपरेशन का उपयोग कर सकते हैं:
db.pets.aggregate([
{
$match: { type: "Dog" }
},
{
$count: "DogCount"
}
])
परिणाम:
{ "DogCount" : 4 }
एग्रीगेशन पाइपलाइन जिस तरह से काम करती है वह यह है कि इसमें कई चरण होते हैं। प्रत्येक पाइपलाइन चरण अगले चरण के लिए इनपुट प्रदान करता है।
इसलिए, उपरोक्त उदाहरण में, पहले चरण ने संग्रह को केवल उन दस्तावेज़ों तक फ़िल्टर किया, जिनमें type
था dog
. का . दूसरे चरण में उन दस्तावेजों को लिया गया, उनकी गणना की गई और परिणाम को अगले चरण में पारित किया गया। यह देखते हुए कि यह पाइपलाइन में अंतिम चरण था, हमने आउटपुट देखा।
समूहीकृत दस्तावेज़ों की गणना करना
यहां एक उदाहरण दिया गया है जो एक निश्चित वजन के तहत प्रत्येक प्रकार के पालतू जानवरों की गिनती वापस करने के लिए $group कुल ऑपरेटर को $count के साथ जोड़ता है।
db.pets.aggregate([
{
$match: { weight: { $lt: 30 } }
},
{
$group: { _id: "$type", count: { $sum: 1 } }
}
])
परिणाम:
{ "_id" : "Cat", "count" : 2 }
{ "_id" : "Bat", "count" : 1 }
{ "_id" : "Dog", "count" : 3 }
पाइपलाइन चरण जोड़ें
इस उदाहरण में, हम परिणामों को क्रमबद्ध करने के लिए एक पाइपलाइन चरण जोड़ते हैं। विशेष रूप से, हम $sort
. का उपयोग करते हैं ऐसा करने के लिए ऑपरेटर।
db.pets.aggregate([
{
$match: { weight: { $lt: 30 } }
},
{
$group: { _id: "$type", count: { $sum: 1 } }
},
{
$sort : { count : -1, _id: 1 }
}
])
परिणाम:
{ "_id" : "Dog", "count" : 3 }
{ "_id" : "Cat", "count" : 2 }
{ "_id" : "Bat", "count" : 1 }
इस मामले में, हम गिनती द्वारा अवरोही क्रम में क्रमबद्ध करते हैं (-1
अवरोही क्रम निर्दिष्ट करता है), फिर _id
. द्वारा आरोही क्रम में (1
आरोही क्रम निर्दिष्ट करता है)।
अधिक जानकारी
अधिक जानकारी के लिए MongoDB दस्तावेज़ देखें।