MongoDB में डॉट नोटेशन का उपयोग करके फ़ील्ड चयन
MongoDB में find() विधि के दूसरे पैरामीटर (प्रोजेक्शन) में डॉट नोटेशन का उपयोग करके नेस्टेड फ़ील्ड्स को शामिल या बाहर किया जा सकता है।
नमूना डेटा बनाना
> db.demo307.insertOne({
"CleintId":101,
"ClientDetails":{"ClientFirstName":"Chris","Age":34},
"ClientCountryName":"US"
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4eab88f8647eb59e56203c") }
> db.demo307.insertOne({
"CleintId":102,
"ClientDetails":{"ClientFirstName":"David","Age":31},
"ClientCountryName":"UK"
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4eab97f8647eb59e56203d") }
सभी दस्तावेज़ प्रदर्शित करना
> db.demo307.find();
आउटपुट:
{ "_id" : ObjectId("5e4eab88f8647eb59e56203c"), "CleintId" : 101, "ClientDetails" : { "ClientFirstName" : "Chris", "Age" : 34 }, "ClientCountryName" : "US" }
{ "_id" : ObjectId("5e4eab97f8647eb59e56203d"), "CleintId" : 102, "ClientDetails" : { "ClientFirstName" : "David", "Age" : 31 }, "ClientCountryName" : "UK" }
फ़ील्ड्स का सबसेट प्राप्त करने की क्वेरी
यहां हम "David" नाम वाले क्लाइंट को ढूंढते हैं और केवल ClientDetails.ClientFirstName फ़ील्ड लौटाते हैं, बाकी सभी फ़ील्ड्स (Age, ClientCountryName, CleintId, _id) को बाहर करते हैं।
> db.demo307.find( {"ClientDetails.ClientFirstName":'David'}, {"ClientDetails.Age" : 0,"ClientCountryName":0,"CleintId":0,"_id":0});
आउटपुट:
{ "ClientDetails" : { "ClientFirstName" : "David" } }
व्याख्या
- पहला पैरामीटर
{"ClientDetails.ClientFirstName":'David'}क्वेरी फ़िल्टर है। - दूसरा पैरामीटर प्रोजेक्शन है:
0का मतलब फ़ील्ड को बाहर करना,1का मतलब शामिल करना। - डॉट नोटेशन
ClientDetails.ClientFirstNameनेस्टेड फ़ील्ड तक पहुंचता है। _idडिफ़ॉल्ट रूप से शामिल होता है, इसे बाहर करने के लिए स्पष्ट रूप से_id:0लिखना पड़ता है।
यह तकनीक नेटवर्क ट्रैफ़िक कम करने और प्रदर्शन सुधारने के लिए केवल आवश्यक डेटा लाने में मदद करती है।