MongoDB क्वेरी परिणाम से किसी फील्ड के मानों की सरणी प्राप्त करने के लिए कर्सर पर map() फ़ंक्शन का उपयोग करें।
उदाहरण
दस्तावेज़ बनाएं:
> db.listOfSpecificValuesDemo.insertOne({"StudentName":"John"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefcc8fef71edecf6a1f6bb") }
> db.listOfSpecificValuesDemo.insertOne({"StudentName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefcc94ef71edecf6a1f6bc") }
> db.listOfSpecificValuesDemo.insertOne({"StudentName":"Robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefcc98ef71edecf6a1f6bd") }
> db.listOfSpecificValuesDemo.insertOne({"StudentName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefcc9cef71edecf6a1f6be") }
दस्तावेज़ देखें:
> db.listOfSpecificValuesDemo.find();
{ "_id" : ObjectId("5cefcc8fef71edecf6a1f6bb"), "StudentName" : "John" }
{ "_id" : ObjectId("5cefcc94ef71edecf6a1f6bc"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5cefcc98ef71edecf6a1f6bd"), "StudentName" : "Robert" }
{ "_id" : ObjectId("5cefcc9cef71edecf6a1f6be"), "StudentName" : "David" }
StudentName मानों की सरणी प्राप्त करें
> db.listOfSpecificValuesDemo.find().map(function(myDocument) {
return myDocument.StudentName;
});
आउटपुट:
[ "John", "Chris", "Robert", "David" ]
व्याख्या:
find()कर्सर लौटाता हैmap()कर्सर के प्रत्येक दस्तावेज़ पर फ़ंक्शन लागू करता है- फ़ंक्शन वांछित फील्ड मान लौटाता है
- परिणाम सरणी के रूप में मिलता है
अन्य उपयोगी तरीके
distinct() - अद्वितीय मान
db.collection.distinct("StudentName")
एग्रीगेशन - अधिक नियंत्रण
db.collection.aggregate([
{$group: {_id: null, names: {$push: "$StudentName"}}},
{$project: {_id: 0, names: 1}}
])
forEach - साइड इफेक्ट के लिए
var names = [];
db.collection.find().forEach(function(doc) { names.push(doc.StudentName); });
print(names);
नोट: map() शेल मेथड है, ड्राइवर में समान कार्यक्षमता के लिए कर्सर को सरणी में बदलकर map करें।