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

MongoDB में नेस्टेड ऐरे के अंदर विशिष्ट एलिमेंट कैसे निकालें

नेस्टेड $elemMatch का उपयोग करके गहरे नेस्टेड ऐरे से एलिमेंट निकालें

जब ऐरे कई लेवल तक नेस्टेड हों, तो प्रत्येक लेवल पर $elemMatch का उपयोग करके विशिष्ट एलिमेंट को फ़िल्टर और प्रोजेक्ट करें।

उदाहरण: संग्रह बनाना

> db.particularElementDemo.insertOne({
    "GroupId": "Group-1",
    "UserDetails": [
        {
            "UserName": "John",
            "UserOtherDetails": [
                {
                    "UserEmailId": "John123@gmail.com",
                    "UserFriendName": [{"Name": "Chris"}]
                },
                {
                    "UserEmailId": "John22@hotmail.com",
                    "UserFriendName": [{"Name": "Robert"}]
                }
            ]
        }
    ]
});
{ "acknowledged": true, "insertedId": 100 }

सभी डॉक्यूमेंट्स देखना

> db.particularElementDemo.find().pretty();
{
    "_id": 100,
    "GroupId": "Group-1",
    "UserDetails": [
        {
            "UserName": "John",
            "UserOtherDetails": [
                {"UserEmailId": "John123@gmail.com", "UserFriendName": [{"Name": "Chris"}]},
                {"UserEmailId": "John22@hotmail.com", "UserFriendName": [{"Name": "Robert"}]}
            ]
        }
    ]
}

नेस्टेड ऐरे से विशिष्ट एलिमेंट निकालने की क्वेरी

UserFriendName.Name: "Robert" वाले एलिमेंट को प्रोजेक्ट करें:

> db.particularElementDemo.find(
    {
        'UserDetails': {
            $elemMatch: {
                'UserOtherDetails': {
                    $elemMatch: {
                        'UserFriendName': { $elemMatch: {"Name": "Robert"} }
                    }
                }
            }
        }
    },
    {"UserDetails.UserOtherDetails.UserFriendName.Name": 1}
);

आउटपुट:

{
    "_id": 100,
    "UserDetails": [
        {
            "UserOtherDetails": [
                {"UserFriendName": [{"Name": "Chris"}]},
                {"UserFriendName": [{"Name": "Robert"}]}
            ]
        }
    ]
}

नेस्टेड $elemMatch प्रत्येक लेवल पर फ़िल्टर करता है। प्रोजेक्शन केवल अनुरोधित पथ को शामिल करता है।

  1. - MongoDB क्वेरी: नेस्टेड ऐरे को एग्रीगेट करें

    MongoDB में नेस्टेड ऐरे को एग्रीगेट करने के लिए aggregate() का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo441.insertOne( ...    { ... ...       "Name" : "David", ...       "Age" : 21, ... ...     &n

  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

  1. - MongoDB Array में Element Remove करना

    Element remove करने के लिए update में $pull का उपयोग करें। $pull operator existing array से उन सभी instances को remove करता है जो specified condition से match करते हैं। Collection बनाना db.demo541.insertOne({software:{services:[gmail,facebook,yahoo]}}); { acknowledged : true, insertedId : ObjectId(