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

MongoDB में सरणी के अंदर ऑब्जेक्ट के भाग से क्वेरी कैसे करें?

सरणी के अंदर नेस्टेड ऑब्जेक्ट के विशिष्ट फील्ड्स के आधार पर दस्तावेज़ क्वेरी करने के लिए, डॉट नोटेशन के साथ $all ऑपरेटर का उपयोग करें। यह उन दस्तावेज़ों को ढूंढता है जहां सरणी में सभी निर्दिष्ट मान वाले तत्व हों।

उदाहरण: उपयोगकर्ता विवरण संग्रह

> db.demo25.insertOne({
    "Details":[
        {"UserId":"Carol101","UserName":"Carol"},
        {"UserId":"David102","UserName":"David"}
    ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e14c86e22d07d3b95082e77") }
> db.demo25.insertOne({
    "Details":[
        {"UserId":"Chris101","UserName":"Chris"},
        {"UserId":"Mike102","UserName":"Mike"}
    ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e14c86f22d07d3b95082e78") }

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

> db.demo25.find();

आउटपुट:

{
    "_id" : ObjectId("5e14c86e22d07d3b95082e77"),
    "Details" : [
        { "UserId" : "Carol101", "UserName" : "Carol" },
        { "UserId" : "David102", "UserName" : "David" }
    ]
}
{
    "_id" : ObjectId("5e14c86f22d07d3b95082e78"),
    "Details" : [
        { "UserId" : "Chris101", "UserName" : "Chris" },
        { "UserId" : "Mike102", "UserName" : "Mike" }
    ]
}

कई मानों के लिए क्वेरी ($all के साथ)

ऐसे दस्तावेज़ ढूंढें जहां Details सरणी में दोनों "Carol101" और "David102" UserId वाले तत्व हों:

> db.demo25.findOne({ "Details.UserId":{$all : ["Carol101","David102"]}});

आउटपुट:

{
    "_id" : ObjectId("5e14c86e22d07d3b95082e77"),
    "Details" : [
        { "UserId" : "Carol101", "UserName" : "Carol" },
        { "UserId" : "David102", "UserName" : "David" }
    ]
}

महत्वपूर्ण नोट्स

  • $all सरणी फील्ड पर काम करता है और उन दस्तावेज़ों से मेल खाता है जहां सरणी में प्रत्येक निर्दिष्ट मान के लिए कम से कम एक तत्व हो।
  • यह एक ही तत्व में सभी मानों की आवश्यकता नहीं है; अलग-अलग तत्व अलग-अलग मानों को संतुष्ट कर सकते हैं।
  • सटीक ऑब्जेक्ट मिलान के लिए, $elemMatch का उपयोग करें।
  • मूल उदाहरण में $findOne() का उल्लेख है, लेकिन सही मेथड findOne() है (बिना $ के)।
  1. - MongoDB में सरणी ऑब्जेक्ट के साथ सरणी तत्व के मान को बढ़ाएं

    सरणी ऑब्जेक्ट के मान को बढ़ाने के लिए, $inc का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: >db.demo506.insertOne({details:[{id:1,Quantity:4},{id:2,Quantity:3},{id:3,Quantity:2},{id:4,Quantity:7}]}); { acknowledged : true, insertedId : ObjectId(5e882ed6987b6e0e9d18f576) } find() मेथड की मद

  1. - MongoDB में $push के साथ सरणी अपडेट करें

    MongoDB में $push के साथ सरणी अपडेट करने के लिए, updateOne() का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo526.insertOne( { CountryName: US, TeacherName: Bob, StudentInformation: [ { Name: Chris, Subject: MySQL, ListOfMailI

  1. - MongoDB में विशिष्ट नेस्टेड डॉक्यूमेंट्स के लिए ऑब्जेक्ट्स की सरणी पर क्वेरी कैसे करें?

    ऑब्जेक्ट्स की सरणी के लिए नेस्टेड डॉक्यूमेंट्स पर क्वेरी करने के लिए find() का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo763.insertOne( { _id:1, CountryName:US, studentInformation: [ { StudentName:Chris }, { StudentName:David, StudentAge:22 } ] } ); { acknowledged : true, insertedId : 1 } f