MongoDB में $sortByCount
एकत्रीकरण पाइपलाइन चरण आने वाले दस्तावेज़ों को एक निर्दिष्ट अभिव्यक्ति के मूल्य के आधार पर समूहित करता है, फिर प्रत्येक विशिष्ट समूह में दस्तावेज़ों की संख्या की गणना करता है।
प्रत्येक समूह अपने स्वयं के दस्तावेज़ में आउटपुट होता है, जिसमें दो फ़ील्ड होते हैं:
- एक
_id
फ़ील्ड जिसमें अलग समूहीकरण मान है, और - एक
count
फ़ील्ड में उस समूह से संबंधित दस्तावेज़ों की संख्या होती है।
दस्तावेज़ों को 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 } { "_id" : 8, "name" : "Tweet", "type" : "Bird", "weight" : 1 } { "_id" : 9, "name" : "Flutter", "type" : "Bird", "weight" : 2 }
नीचे एक क्वेरी का उदाहरण दिया गया है जो $sortByCount
. का उपयोग करती है ऑपरेटर।
db.pets.aggregate([
{ $match: {} },
{ $sortByCount: "$type" }
])
परिणाम:
{ "_id" : "Dog", "count" : 4 } { "_id" : "Cat", "count" : 2 } { "_id" : "Bird", "count" : 2 } { "_id" : "Bat", "count" : 1 }
इस उदाहरण में, हम प्रत्येक पालतू प्रकार के पालतू जानवरों की संख्या के साथ-साथ प्रत्येक संबंधित प्रकार के पालतू जानवरों की संख्या को आउटपुट करते हैं।
यह निम्न के बराबर है:
db.pets.aggregate([
{
$match: { }
},
{
$group: { _id: "$type", count: { $sum: 1 } }
},
{
$sort : { count : -1 }
}
])
यहां एक और उदाहरण दिया गया है, लेकिन अतिरिक्त फ़िल्टरिंग मानदंड के साथ।
db.pets.aggregate([
{
$match: { weight: { $lt: 15 } }
},
{
$sortByCount: "$type"
}
])
परिणाम:
{ "_id" : "Cat", "count" : 2 } { "_id" : "Bird", "count" : 2 } { "_id" : "Dog", "count" : 1 } { "_id" : "Bat", "count" : 1 }
$sortByCount
. को पास किए गए दस्तावेज़ में इस बार केवल एक कुत्ता है , क्योंकि पहले पाइपलाइन चरण ने कुत्तों को एक निश्चित वजन से अधिक हटा दिया। इसलिए, $sortByCount
बस उसे प्रदान किए गए दस्तावेज़ से संख्याओं की गणना करता है, जिसमें केवल एक कुत्ता शामिल है।
अधिक जानकारी
अधिक जानकारी के लिए MongoDB दस्तावेज़ देखें।