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

MongoDB में एम्बेडेड डॉक्यूमेंट की सरणी पर फ़िल्टर क्वेरी कैसे करें?


इसके लिए MongoDB में aggregate() का उपयोग करें। आइए 3 स्तरों के नेस्टेड डॉक्यूमेंट्स के साथ एक कलेक्शन बनाते हैं:

> db.demo736.insertOne( { "_id": "101", "details1": [ { "details2": [ { "details3": { "Name": "John" } } ] } ] } ); { "acknowledged" : true, "insertedId" : "101" }
> db.demo736.insertOne( { "_id": "102", "details1": [ { "details2": [ { "details3": { "Name": "Robert" } } ] } ] } ); { "acknowledged" : true, "insertedId" : "102" }

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

> db.demo736.find();

आउटपुट:

{ "_id" : "101", "details1" : [ { "details2" : [ { "details3" : { "Name" : "John" } } ] } ] }
{ "_id" : "102", "details1" : [ { "details2" : [ { "details3" : { "Name" : "Robert" } } ] } ] }

MongoDB में एम्बेडेड डॉक्यूमेंट्स की सरणी (3 स्तर) को फ़िल्टर करने के लिए aggregation क्वेरी:

> db.demo736.aggregate([ ... { "$unwind": "$details1" }, ... { "$unwind": "$details1.details2" }, ... { "$match": { "details1.details2.details3.Name": "Robert" } }, ... { "$project": { _id: 0, Name: "$details1.details2.details3" } } ... ])

परिणाम:

{ "Name" : { "Name" : "Robert" } }

  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 में Array Elements के साथ Specific Document Fetch करना

    MongoDB में किसी specific document को fetch करने के लिए find() मेथड में dot notation का उपयोग करें। आइए documents के साथ एक collection बनाते हैं: > db.demo672.insertOne({Brand:[{CategoryName:Mobile,Name:Oppo}]}); { acknowledged : true, insertedId : ObjectId(5ea3ea9b04263e90dac943e5) } > db.dem

  1. - MongoDB में एम्बेडेड दस्तावेजों को क्वेरी करें

    MongoDB में एम्बेडेड दस्तावेजों को क्वेरी करने के लिए, aggregate() का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo705.insertOne( { _id:101, Information: [ { StudentName:Chris, StudentAge:21 }, { StudentName:David, StudentAge:23 },