MongoDB एक संग्रह या दृश्य में दस्तावेजों की गिनती के लिए विभिन्न तरीके प्रदान करता है। कुछ एग्रीगेशन ऑपरेटर भी हैं जो आपको पिछले एग्रीगेशन पाइपलाइन चरण से आने वाले दस्तावेज़ों की गणना करने में सक्षम बनाते हैं।
यह लेख मोंगो शेल में दस्तावेजों को गिनने के निम्नलिखित तरीके प्रस्तुत करता है:
count
आदेशdb.collection.count()
विधि- द
db.collection.countDocuments()
विधि db.collection.estimatedDocumentCount()
विधि- द
cursor.count()
विधि $count
एकत्रीकरण पाइपलाइन ऑपरेटर$sortByCount
एकत्रीकरण पाइपलाइन ऑपरेटर
count
कमांड
count
कमांड किसी संग्रह या दृश्य में दस्तावेज़ों की संख्या की गणना करता है।
उदाहरण:
db.runCommand( {
count: "pets",
query: { type: "Dog" }
} )
परिणाम:
{ "n" : 4, "ok" : 1 }
इस उदाहरण में, हम देख सकते हैं कि pets
. में चार कुत्ते हैं संग्रह।
हम यह भी देख सकते हैं कि यह एक दस्तावेज़ देता है जिसमें गिनती के साथ-साथ कमांड स्थिति भी होती है।
द db.collection.count()
विधि
db.collection.count()
विधि find()
. से मेल खाने वाले दस्तावेज़ों की संख्या लौटाती है संग्रह या देखने के लिए क्वेरी।
collection
भाग उस संग्रह या दृश्य का नाम है जिस पर गिनती ऑपरेशन किया जाता है।
db.collection.count()
विधि count
. के लिए एक आवरण विधि है आदेश।
उदाहरण:
db.pets.count({
"type": "Dog"
})
परिणाम:
4
db.collection.count()
विधि count
. जैसे दस्तावेज़ को वापस नहीं करती है आदेश करता है। यह केवल गिनती लौटाता है।
द countDocuments()
विधि
db.collection.countDocuments()
विधि संग्रह या दृश्य के लिए क्वेरी से मेल खाने वाले दस्तावेज़ों की संख्या लौटाती है।
collection
भाग उस संग्रह या दृश्य का नाम है जिस पर गिनती ऑपरेशन किया जाता है।
उदाहरण:
db.pets.countDocuments({
"type": "Dog"
})
परिणाम:
4
मूल रूप से db.collection.count()
. के समान परिणाम , हालांकि इसका उपयोग करने की अनुशंसा की जाती है countDocuments()
इसके बजाय count()
यदि संभव हो तो।
MongoDB दस्तावेज़ कहता है:
<ब्लॉकक्वॉट क्लास ="डब्ल्यूपी-ब्लॉक-कोट">
4.0 सुविधाओं के साथ संगत MongoDB ड्राइवर अपने संबंधित कर्सर और संग्रह को हटा देते हैं count()
countDocuments()
. के लिए नए API के पक्ष में API और estimatedDocumentCount()
. किसी दिए गए ड्राइवर के लिए विशिष्ट API नामों के लिए, ड्राइवर दस्तावेज़ देखें।
साथ ही, जब बिना किसी क्वेरी विधेय के उपयोग किया जाता है, count()
मेटाडेटा पर निर्भर करता है, जिसके परिणामस्वरूप अनुमानित गणना हो सकती है। countDocuments()
दूसरी ओर, विधि मेटाडेटा पर निर्भर नहीं करती है, और दस्तावेज़ों के एकत्रीकरण को निष्पादित करके एक सटीक गणना लौटाती है।
estimatedDocumentCount()
विधि
db.collection.estimatedDocumentCount()
विधि count
. के लिए एक आवरण है आदेश जो संग्रह या दृश्य में सभी दस्तावेज़ों की गिनती लौटाता है।
उदाहरण:
db.pets.estimatedDocumentCount()
परिणाम:
7
db.collection.estimatedDocumentCount()
विधि एक क्वेरी फ़िल्टर नहीं लेती है। इसके बजाय यह संपूर्ण संग्रह/दृश्य के लिए दस्तावेज़ों की संख्या वापस करने के लिए मेटाडेटा का उपयोग करता है।
द cursor.count()
विधि
cursor.count()
विधि count
. के लिए एक आवरण है कमांड जो एक कर्सर द्वारा संदर्भित दस्तावेजों की संख्या की गणना करता है..
यह वास्तव में क्वेरी नहीं करता है। यह केवल उन परिणामों की गणना करता है और लौटाता है जो क्वेरी द्वारा लौटाए जाएंगे।
उदाहरण:
db.pets.find({"type": "Dog"}).count()
परिणाम:
4
यह db.collection.count()
. के बराबर है ऊपर विधि उदाहरण।
जैसा कि ऊपर उद्धृत किया गया है, 4.0 सुविधाओं के साथ संगत MongoDB ड्राइवर अपने संबंधित कर्सर और संग्रह को हटा देते हैं count()
countDocuments()
. के लिए नए API के पक्ष में API और estimatedDocumentCount()
।
$count
एग्रीगेशन पाइपलाइन ऑपरेटर
$count
एग्रीगेशन ऑपरेटर एक दस्तावेज़ को एग्रीगेशन पाइपलाइन में अगले चरण में भेजता है जिसमें वर्तमान चरण में इनपुट किए गए दस्तावेज़ों की संख्या की गणना होती है।
उदाहरण:
db.pets.aggregate([
{
$match: { type: "Dog" }
},
{
$count: "DogCount"
}
])
परिणाम:
{ "DogCount" : 4 }
यहां एक और उदाहरण दिया गया है जो दिखाता है कि आप समूहबद्ध परिणामों की गणना करने के लिए इस ऑपरेटर का उपयोग कैसे कर सकते हैं।
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 }
यह विशेष क्वेरी $sortByCount
. का उपयोग करके कम कोड के साथ की जा सकती है एकत्रीकरण पाइपलाइन ऑपरेटर (नीचे)।
$sortByCount
एग्रीगेशन पाइपलाइन ऑपरेटर
$sortByCount
एग्रीगेशन ऑपरेटर आने वाले दस्तावेज़ों को एक निर्दिष्ट अभिव्यक्ति के मूल्य के आधार पर समूहित करता है, फिर प्रत्येक विशिष्ट समूह में दस्तावेज़ों की संख्या की गणना करता है।
यहां बताया गया है कि हम $sortByCount
. का उपयोग कैसे कर सकते हैं पिछले उदाहरण के समान परिणाम प्राप्त करने के लिए:
db.pets.aggregate([
{
$match: { weight: { $lt: 30 } }
},
{
$sortByCount: "$type"
}
])
परिणाम:
{ "_id" : "Dog", "count" : 3 } { "_id" : "Cat", "count" : 2 } { "_id" : "Bat", "count" : 1 }
प्रत्येक समूह अपने स्वयं के दस्तावेज़ में आउटपुट होता है, जिसमें दो फ़ील्ड होते हैं:
- एक
_id
फ़ील्ड जिसमें अलग समूहीकरण मान है, और - एक
count
फ़ील्ड में उस समूह से संबंधित दस्तावेज़ों की संख्या होती है।
दस्तावेज़ों को count
. द्वारा क्रमबद्ध किया जाता है अवरोही क्रम में।