विशिष्ट मान वे मान हैं जिनमें अनावश्यक डुप्लिकेट हटा दिए गए हैं। दूसरे शब्दों में, विशिष्ट मूल्य अद्वितीय मूल्य हैं।
MongoDB में कुछ तरीके हैं जिनसे हम एक क्वेरी में अलग-अलग मान वापस कर सकते हैं। यह लेख मोंगो शेल में अलग-अलग मान वापस करने के 3 तरीके प्रस्तुत करता है।
नमूना डेटा
इस पृष्ठ पर उदाहरण निम्नलिखित संग्रह का उपयोग करते हैं जिन्हें 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 }
distinct()
विधि
MongoDB में, db.collection.distinct()
विधि एकल संग्रह या दृश्य में निर्दिष्ट फ़ील्ड के लिए अलग-अलग मान ढूंढती है और परिणामों को एक सरणी में लौटाती है।
उदाहरण:
db.pets.distinct( "type" )
परिणाम:
[ "Bat", "Cat", "Dog" ]
ये तीन मान type
. के लिए अलग-अलग मान हैं उपरोक्त दस्तावेज़ों में फ़ील्ड।
pets
भाग केवल उस संग्रह का नाम देता है जिसके लिए अलग-अलग मान वापस करना है।
db.collection.distinct()
विधि distinct
. के लिए एक शेल आवरण विधि है आदेश (नीचे)।
distinct
कमांड
MongoDB में, distinct
एग्रीगेशन कमांड एकल संग्रह में निर्दिष्ट फ़ील्ड के लिए अलग-अलग मान ढूंढता है।
यह एक दस्तावेज़ देता है जिसमें विशिष्ट मानों की एक सरणी होती है, साथ ही क्वेरी आंकड़ों और क्वेरी योजना के साथ एक एम्बेडेड दस्तावेज़ होता है।
db.runCommand ( { distinct: "pets", key: "type" } )
परिणाम:
{ "values" : [ "Bat", "Cat", "Dog" ], "ok" : 1 }
हम देख सकते हैं कि वही अलग-अलग मान लौटाए गए हैं, सिवाय इस समय के कि वे एक ऐसे दस्तावेज़ में हैं जिसमें अन्य जानकारी भी शामिल है।
द $group
एग्रीगेशन ऑपरेटर
अपनी आवश्यकताओं के आधार पर, आप $group
. का भी उपयोग कर सकते हैं अलग-अलग मान लौटाने के लिए एग्रीगेशन ऑपरेटर.
उदाहरण:
db.pets.aggregate( [ { $group : { _id : "$type" } } ] )
परिणाम:
{ "_id" : "Cat" } { "_id" : "Bat" } { "_id" : "Dog" }
इस मामले में अलग-अलग दस्तावेज़ों में अलग-अलग मान लौटाए जाते हैं।
यदि आप अपने परिणामों के बड़े होने की अपेक्षा करते हैं तो यह दृष्टिकोण उपयोगी हो सकता है। यदि आपके परिणाम अधिकतम बीएसओएन आकार (लेखन के समय 16 मेगाबाइट) से बड़े हैं, तो आपको इस दृष्टिकोण का उपयोग करने की आवश्यकता हो सकती है।