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

MongoDB में सरणी में ऑब्जेक्ट तक पहुंचने की क्वेरी

MongoDB में डॉट नोटेशन का उपयोग करके सरणी के भीतर नेस्टेड ऑब्जेक्ट क्वेरी करना

MongoDB में जब आपके पास ऑब्जेक्ट्स की सरणी हो, तो आप डॉट नोटेशन का उपयोग करके सरणी तत्वों के भीतर नेस्टेड फ़ील्ड्स को क्वेरी कर सकते हैं।

नमूना डेटा बनाना

> db.demo299.insertOne(
    {
        "id":100,
        "Name":"Robert",
        "details":[
            { "SubjectName":["C++","Python"] },
            { "SubjectName":["Spring","Hibernate"] }
        ]
    }
);
{ "acknowledged" : true, "insertedId" : ObjectId("5e4d685a5d93261e4bc9ea4b") }
> db.demo299.insertOne(
    {
        "id":101,
        "Name":"Adam",
        "details":[
            { "SubjectName":["Python","JSP"] },
            { "SubjectName":["Servlet","Operating System"] }
        ]
    }
);
{ "acknowledged" : true, "insertedId" : ObjectId("5e4d685b5d93261e4bc9ea4c") }

सभी दस्तावेज़ प्रदर्शित करना

> db.demo299.find();

आउटपुट:

{
    "_id" : ObjectId("5e4d685a5d93261e4bc9ea4b"),
    "id" : 100,
    "Name" : "Robert",
    "details" : [
        { "SubjectName" : [ "C++", "Python" ] },
        { "SubjectName" : [ "Spring", "Hibernate" ] }
    ]
}
{
    "_id" : ObjectId("5e4d685b5d93261e4bc9ea4c"),
    "id" : 101,
    "Name" : "Adam",
    "details" : [
        { "SubjectName" : [ "Python", "JSP" ] },
        { "SubjectName" : [ "Servlet", "Operating System" ] }
    ]
}

सरणी में नेस्टेड ऑब्जेक्ट क्वेरी करने की क्वेरी

details सरणी में किसी ऑब्जेक्ट के SubjectName सरणी में "Servlet" मान खोजें।

> db.demo299.find({"details.SubjectName":"Servlet"});

आउटपुट:

{
    "_id" : ObjectId("5e4d685b5d93261e4bc9ea4c"),
    "id" : 101,
    "Name" : "Adam",
    "details" : [
        { "SubjectName" : [ "Python", "JSP" ] },
        { "SubjectName" : [ "Servlet", "Operating System" ] }
    ]
}

व्याख्या

  • {"details.SubjectName":"Servlet"} - MongoDB स्वचालित रूप से details सरणी के प्रत्येक तत्व में SubjectName सरणी के भीतर "Servlet" खोजता है।
  • यह "अनवाइंड" किए बिना सरणी के भीतर सरणी क्वेरी करने का सरल तरीका है।
  • पूरा दस्तावेज़ लौटाया जाता है, केवल मिलान करने वाला सरणी तत्व नहीं।

नोट

यदि आपको केवल मिलान करने वाला सरणी तत्व चाहिए, तो $elemMatch प्रोजेक्शन या aggregation pipeline में $filter का उपयोग करें।

  1. - MongoDB क्वेरी: इंडेक्स N पर ऐरे ऑब्जेक्ट अपडेट करें

    MongoDB में ऐरे ऑब्जेक्ट अपडेट करने के लिए update() का उपयोग करें। डॉट नोटेशन का उपयोग भी आवश्यक है। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo489.insertOne( ... { ... ... ...    details : [{ ...       id : 101, ...       "Info1" : { ... &

  1. - MongoDB में सबडॉक्यूमेंट्स के ऐरे को कैसे क्वेरी करें?

    सबडॉक्यूमेंट्स के ऐरे को क्वेरी करने के लिए MongoDB में $unwind का उपयोग करें। नमूना डेटा बनाना (सबडॉक्यूमेंट्स ऐरे) db.demo499.insertOne({ details: [ { Name:MIT, Rank: 1, CountryName:US }, { Name:Stanford University, Rank: 2 }, { Name:University of California, Berkeley, Rank: 3 }

  1. - MongoDB में नेस्टेड सरणी को कैसे सॉर्ट करें?

    MongoDB में नेस्टेड सरणी को सॉर्ट करने के लिए, $sort का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo505.insertOne( { details: [ { Name:Chris, Score:58 }, { Name:Bob, Score:45 }, { Name:John, Score:68 }, { Name:David, Score:46 } ] }); { ackn