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

MongoDB से फ़ील्ड्स का सबसेट प्राप्त करना

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 लिखना पड़ता है।

यह तकनीक नेटवर्क ट्रैफ़िक कम करने और प्रदर्शन सुधारने के लिए केवल आवश्यक डेटा लाने में मदद करती है।

  1. - MongoDB संग्रह से डेटा कैसे पुनर्प्राप्त करें?

    संग्रह से एकल दस्तावेज़ लौटाने के लिए MongoDB में findOne() का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo463.insertOne({"StudentName":"Chris Brown","StudentAge":21,"StudentCountryName":"US"});{    "acknowledged&q

  1. - MongoDB में दो सरणियों को अनविंड करें

    अनविंड करने के लिए, $unwind का उपयोग करें। $unwind इनपुट दस्तावेज़ों से सरणी फ़ील्ड को डीस्ट्रक्चर करता है ताकि प्रत्येक तत्व के लिए एक दस्तावेज़ आउटपुट हो। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo515.insertOne( { details1: [ 4700100004 ], details2: [ Not Give

  1. - MongoDB में शर्त से मेल खाने वाले कई सब-डॉक्यूमेंट्स से फ़ील्ड कैसे प्राप्त करें?

    कई सब-डॉक्यूमेंट्स से फ़ील्ड प्राप्त करने के लिए, $unwind के साथ MongoDB एग्रीगेट का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo671.insertOne( { details : [ { id : 1 }, { CountryName:US, details1 : [