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

MongoDB में मल्टीपल सब-डॉक्यूमेंट्स फ़िल्टर करें

MongoDB में मल्टीपल सब-डॉक्यूमेंट्स फ़िल्टर करने के लिए aggregate() का उपयोग करें। पहले कलेक्शन बनाएं:

> db.demo200.insertOne({
    "Id": "101",
    "details1": [
        { "isActive": true, "SubjectName": "MySQL" },
        { "isActive": false, "SubjectName": "Java" }
    ],
    "details2": [
        { "isActive": false, "Name": "David" },
        { "isActive": true, "Name": "Mike" }
    ]
}); 
{ "acknowledged": true, "insertedId": ObjectId("5e3c374f03d395bdc21346e4") }

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

> db.demo200.find();

आउटपुट:

{ "_id": ObjectId("5e3c374f03d395bdc21346e4"), "Id": "101", "details1": [
    { "isActive": true, "SubjectName": "MySQL" },
    { "isActive": false, "SubjectName": "Java" }
], "details2": [
    { "isActive": false, "Name": "David" },
    { "isActive": true, "Name": "Mike" }
] }

मल्टीपल सब-डॉक्यूमेंट्स फ़िल्टर करने की क्वेरी:

> var out = [
    { "$match": { "Id": "101", "details1.isActive": true, "details2.isActive": true } },
    { "$unwind": "$details1" },
    { "$unwind": "$details2" },
    { "$match": { "details1.isActive": true, "details2.isActive": true } },
    { "$group": { 
        "_id": { "_id": "$_id", "Id": "$Id" },
        "details2": { "$addToSet": "$details2" },
        "details1": { "$addToSet": "$details1" }
    }},
    { "$project": { "_id": 0, "Id": "$_id.Id", "details2": 1, "details1": 1 }}
]
> db.demo200.aggregate(out)

परिणाम:

{ "details2": [ { "isActive": true, "Name": "Mike" } ], "details1": [ { "isActive": true, "SubjectName": "MySQL" } ], "Id": "101" }
  1. - MongoDB में एकाधिक एटॉमिक अपडेट कैसे करें?

    एकाधिक एटॉमिक अपडेट के लिए update() के साथ $set का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo699.insertOne({Name:Chris Brown}); { acknowledged : true, insertedId : ObjectId(5ea6e370551299a9f98c93a7) } > db.demo699.insertOne({Name:David Miller}); { acknowledged : true, insertedId : Object

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

    इसके लिए, $unwind के साथ aggregate() का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo583.insert([ { details1: [ { details2: [ { isMarried: true, Name: Chris }, { isMarried: true, Name: Bob }

  1. - MongoDB Aggregate एकाधिक परिणाम ग्रुप करें?

    एकाधिक परिणाम एग्रीगेट करने के लिए MongoDB में $group का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo765.insertOne( { Name:John, Category:ComputerScience, SubjectName:MongoDB, Marks:75 } ); { acknowledged : true, insertedId : ObjectId(5eb054525637cd592b2a4b01) } > db.demo765.insertOne( { N