MongoDB में डॉट नोटेशन के माध्यम से नेस्टेड सरणी फ़ील्ड्स का चयन
MongoDB में find() प्रोजेक्शन में डॉट नोटेशन का उपयोग करके सरणी के भीतर नेस्टेड ऑब्जेक्ट्स के विशिष्ट फ़ील्ड्स को चुना या बाहर किया जा सकता है।
नमूना डेटा बनाना
> db.demo302.insertOne({"Id":101,"details":[{"Name":"Chris",Age:21,"Subject":"MySQL"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4d746f5d93261e4bc9ea52") }
> db.demo302.insertOne({"Id":102,"details":[{"Name":"Bob",Age:23,"Subject":"MongoDB"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4d74815d93261e4bc9ea53") }
> db.demo302.insertOne({"Id":103,"details":[{"Name":"David",Age:20,"Subject":"Java"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4d74955d93261e4bc9ea54") }
सभी दस्तावेज़ प्रदर्शित करना
> db.demo302.find();
आउटपुट:
{ "_id" : ObjectId("5e4d746f5d93261e4bc9ea52"), "Id" : 101, "details" : [ { "Name" : "Chris", "Age" : 21, "Subject" : "MySQL" } ] }
{ "_id" : ObjectId("5e4d74815d93261e4bc9ea53"), "Id" : 102, "details" : [ { "Name" : "Bob", "Age" : 23, "Subject" : "MongoDB" } ] }
{ "_id" : ObjectId("5e4d74955d93261e4bc9ea54"), "Id" : 103, "details" : [ { "Name" : "David", "Age" : 20, "Subject" : "Java" } ] }
डॉट नोटेशन के साथ फ़ील्ड चयन क्वेरी
विषय "MongoDB" वाले दस्तावेज़ खोजें, लेकिन केवल details.Subject फ़ील्ड लौटाएं, बाकी सभी फ़ील्ड्स (details.Name, details.Age, _id, Id) को बाहर करें।
>db.demo302.find({"details.Subject":"MongoDB"},{"details.Name":0,"details.Age":0,"_id":0,"Id":0});
आउटपुट:
{ "details" : [ { "Subject" : "MongoDB" } ] }
व्याख्या
{"details.Subject":"MongoDB"}- क्वेरी फ़िल्टर: सरणीdetailsमें किसी ऑब्जेक्ट काSubject"MongoDB" हो।{"details.Name":0,"details.Age":0,"_id":0,"Id":0}- प्रोजेक्शन: ये फ़ील्ड्स बाहर करें (0)।- डॉट नोटेशन
details.Subjectसरणी तत्वों के भीतर फ़ील्ड तक पहुंचता है। - MongoDB सरणी फ़ील्ड्स पर प्रोजेक्शन लागू करते समय सभी मिलान करने वाले तत्वों को शामिल करता है।
यह दृष्टिकोण केवल आवश्यक डेटा स्थानांतरित करके नेटवर्क बैंडविड्थ बचाता है और क्लाइंट-साइड प्रोसेसिंग सरल करता है।