Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB क्वेरी से विशिष्ट मानों की सूची कैसे प्राप्त करें?

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 करें।

  1. - MongoDB क्वेरी: फील्ड वैल्यू ऐरे होने पर दस्तावेज़ों से नामों की विशिष्ट सूची प्राप्त करना

    इसके लिए $all का उपयोग करें। $all ऑपरेटर उन दस्तावेज़ों को चुनता है जहां फील्ड का मान एक ऐरे होता है जिसमें सभी निर्दिष्ट एलिमेंट्स होते हैं। नमूना डेटा बनाना db.demo642.insertOne({ _id:2, ListOfNames:[Robert,Chris] }); सभी दस्तावेज़ देखना db.demo642.find(); { ListOfNames : [ Robert, John ] } {

  1. - MongoDB क्वेरी: दस्तावेज़ों में विशिष्ट फ़ील्ड के मान जोड़ें

    आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo677.insertOne({Value:10}); { acknowledged : true, insertedId : ObjectId(5ea421f404263e90dac943f8) } > db.demo677.insertOne({Value:50}); { acknowledged : true, insertedId : ObjectId(5ea421f704263e90dac943f9) } > db.demo677.insertOne({Value:20}

  1. - MongoDB डॉक्यूमेंट से विशिष्ट मान फ़िल्टर करें

    विशिष्ट मान फ़िल्टर करने के लिए MongoDB में $filter का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo751.insertOne( { _id: 101, details: [ { Name: Robert, id:110,Age:21}, { Name: Rae, id:110,Age:22}, {Name: Ralph, id:116,Age:23} ] } ); { acknowledged : true, insertedId : 101 } find() से सभी डॉक