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

MongoDB दस्तावेज़ में सरणी आइटम कैसे प्राप्त करें?

MongoDB दस्तावेज़ के अंदर सरणी (array) आइटम्स को एक्सेस करने के लिए डॉट (.) नोटेशन का उपयोग किया जाता है। यह MongoDB में नेस्टेड डेटा क्वेरी करने का सबसे सरल और सामान्य तरीका है।

उदाहरण: छात्र विवरण संग्रह बनाना

सबसे पहले, हम एक संग्रह बनाते हैं जिसमें छात्रों के नाम और अंक वाली सरणी वाले दस्तावेज़ हों:

> db.demo29.insertOne({"StudentDetails":[{"StudentName":"Chris","StudentMarks":58},{"StudentName":"Bob","StudentMarks":69}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e15fcc08f2315c2efc48e6e") }
> db.demo29.insertOne({"StudentDetails":[{"StudentName":"David","StudentMarks":97},{"StudentName":"Carol","StudentMarks":96}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e15fcd38f2315c2efc48e6f") }

सभी दस्तावेज़ देखना

find() मेथड का उपयोग करके सभी दस्तावेज़ प्रदर्शित करें:

> db.demo29.find().pretty();

आउटपुट:

{
    "_id" : ObjectId("5e15fcc08f2315c2efc48e6e"),
    "StudentDetails" : [
        { "StudentName" : "Chris", "StudentMarks" : 58 },
        { "StudentName" : "Bob", "StudentMarks" : 69 }
    ]
}
{
    "_id" : ObjectId("5e15fcd38f2315c2efc48e6f"),
    "StudentDetails" : [
        { "StudentName" : "David", "StudentMarks" : 97 },
        { "StudentName" : "Carol", "StudentMarks" : 96 }
    ]
}

सरणी के अंदर विशिष्ट आइटम क्वेरी करना

डॉट नोटेशन का उपयोग करके सरणी के अंदर नेस्टेड फील्ड द्वारा दस्तावेज़ फ़िल्टर करें:

> db.demo29.find({"StudentDetails.StudentName":"David"});

यह केवल वही दस्तावेज़ लौटाता है जहां सरणी में कम से कम एक ऑब्जेक्ट में StudentName: "David" हो:

{
    "_id" : ObjectId("5e15fcd38f2315c2efc48e6f"),
    "StudentDetails" : [
        { "StudentName" : "David", "StudentMarks" : 97 },
        { "StudentName" : "Carol", "StudentMarks" : 96 }
    ]
}

मुख्य बिंदु

  • डॉट नोटेशन (arrayField.nestedField) सरणी के अंदर नेस्टेड फील्ड्स से मेल खाता है।
  • क्वेरी पूरे दस्तावेज़ को लौटाती है, न कि केवल मिलान करने वाला सरणी तत्व।
  • केवल मिलान करने वाले सरणी तत्वों को प्रोजेक्ट करने के लिए, $elemMatch प्रोजेक्शन या एग्रीगेशन पाइपलाइन का उपयोग करें।
  1. - MongoDB में ऐरे के अंदर एलिमेंट्स कैसे अपडेट करें?

    ऐरे के अंदर एलिमेंट्स अपडेट करने के लिए MongoDB में $set का उपयोग करें। नमूना डेटा बनाना (CollegeDetails ऐरे) db.demo494.insertOne( { CollegeDetails : [ { CollegeName : MIT, Fees : 80000 }, { CollegeName : SU, Fees : 90000 } ] } ) अपडेट से पहले दस्तावेज़ देखना db.demo494.find().prett

  1. - MongoDB में Document के अंदर Array के अंदर Object Update करने का Syntax

    इसके लिए MongoDB में findOneAndUpdate() का उपयोग करें। findOneAndUpdate() method filter और sort criteria के आधार पर single document update करता है। Collection बनाना > db.demo553.insertOne( ... { ... id:101, ... Name:John, ... midExamDetails: ... [ ... {SubjectName:MySQL,Marks:70}, ..

  1. - MongoDB एग्रीगेशन: दस्तावेज और ऐरे एलिमेंट्स से औसत प्राप्त करें

    इसके लिए, $avg के साथ $group और aggregate() का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo598.insertOne({ Information:Student, id:100, details:[ {Name:Chris,Marks:75}, {Name:Bob,Marks:55} ] }); { acknowledged : true, insertedId : ObjectId(5e9