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

नेस्टेड सरणी दस्तावेज़ों में केवल विशिष्ट फ़ील्ड प्राप्त करने के लिए MongoDB क्वेरी?

<घंटा/>

नेस्टेड सरणी दस्तावेज़ों में केवल विशिष्ट फ़ील्ड प्राप्त करने के लिए, $ प्रोजेक्ट के साथ $filter का उपयोग करें। आइए दस्तावेजों के साथ एक संग्रह बनाएं -

> db.demo342.insertOne({... "Id":"101",... "details1" :{... "details2" :[... {... "details3" :[ ... {... "नाम":"माइक",... "देश का नाम":"अमेरिका"...},... {... "नाम":"डेविड",... "देश का नाम" " :"एयूएस"...},... {... "नाम":"बॉब",... "कंट्रीनाम":"यूके"...}...]...}... ]...}...}...);{ "स्वीकृत" :सच, "insertId" :ObjectId("5e53ef99f8647eb59e5620a9")}

संग्रह से सभी दस्तावेज़ों को खोजने () विधि की सहायता से प्रदर्शित करें -

> db.demo342.find();

यह निम्नलिखित आउटपुट उत्पन्न करेगा -

{ "_id" :ObjectId("5e53ef99f8647eb59e5620a9"), "Id" :"101", "details1" :{ "details2" :[ { "details3" :[ { "Name" :"Mike", "CountryName " :"अमेरिका" }, { "नाम" :"डेविड", "देश का नाम" :"एयूएस" }, { "नाम" :"बॉब", "देश का नाम" :"यूके" } ] } ] } } }> 

नेस्टेड सरणी दस्तावेज़ों में केवल विशिष्ट फ़ील्ड प्राप्त करने के लिए क्वेरी निम्नलिखित है -

> db.demo342.aggregate([... {"$project":{... "details1":{... "details2":{... "$filter":{... " input":{... "$map":{... "इनपुट":"$details1.details2",... "in":{... "details3":{... "$filter" :{... "इनपुट":"$$this.details3",... "cond":{ "$eq":["$$this.Name", "Bob"] }...}.. }...}...}...},... "cond":{ "$ne":["$$this.details3", []] }...}...}. .. }... }}... ])

यह निम्नलिखित आउटपुट उत्पन्न करेगा -

{ "_id" :ObjectId("5e53ef99f8647eb59e5620a9"), "details1" :{ "details2" :[ { "details3" :[ { "Name" :"Bob", "CountryName" :"UK" } ] } ] } } 
  1. MongoDB दस्तावेज़ों में किसी विशिष्ट फ़ील्ड से सरणी तत्वों की गिनती प्राप्त करें?

    किसी विशिष्ट फ़ील्ड से सरणी तत्वों की गणना करने के लिए, MongoDB में $size का उपयोग करें। आइए दस्तावेजों के साथ एक संग्रह बनाएं - > db.demo723.insertOne({"Subject":["MySQL","MongoDB"]}); {    "acknowledged" : true,    "insertedId&quo

  1. MongoDB के साथ विशिष्ट नेस्टेड दस्तावेज़ों के लिए वस्तुओं की एक सरणी पर पूछताछ?

    नेस्टेड दस्तावेज़ों के लिए ऑब्जेक्ट्स की एक सरणी पर क्वेरी करने के लिए, ढूंढें () का उपयोग करें। आइए दस्तावेजों के साथ एक संग्रह बनाएं - > db.demo763.insertOne( ...    { ...       _id:1, ...       CountryName:"US", ...       "s

  1. एक विशिष्ट मान प्राप्त करने के लिए MongoDB में एक सरणी क्वेरी करें

    किसी सरणी से एक विशिष्ट मान प्राप्त करने के लिए, $project के साथ-साथ समुच्चय () का उपयोग करें। आइए दस्तावेजों के साथ एक संग्रह बनाएं - > db.demo761.insertOne( ...    { ...       "details": [ ...          { ...