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

क्या किसी सरणी में किसी ऑब्जेक्ट में किसी फ़ील्ड में कोई विशेष मान रखने वाली प्रविष्टियों के लिए क्वेरी करने के लिए MongoDB का उपयोग करना संभव है?

<घंटा/>

हाँ, MongoDB के साथ सरणी में किसी ऑब्जेक्ट में फ़ील्ड के लिए क्वेरी करने के लिए, निम्न सिंटैक्स का उपयोग करें -

db.yourCollectionName.find({"yourOuterFieldName": { $elemMatch: { "yourInnerFieldName": "yourValue" } } } ).pretty();

उपरोक्त अवधारणा को समझने के लिए, आइए हम दस्तावेज़ के साथ एक संग्रह बनाते हैं। दस्तावेज़ के साथ संग्रह बनाने की क्वेरी इस प्रकार है -

> db.objectInAnArrayDemo.insertOne({ "StudentDetails": [{
   "StudentName": "John", "StudentMessage": "Hi"}, {"StudentName": "Larry", "StudentMessage": "Hello"}]})
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c92635d36de59bd9de06381")
}
> db.objectInAnArrayDemo.insertOne({ "StudentDetails": [{
   "StudentName": "Carol", "StudentMessage": "Hello"}, {"StudentName": "David", "StudentMessage": "Good Morning"}]})
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c92637936de59bd9de06382")
}

संग्रह से सभी दस्तावेज़ों को ढूँढें () विधि की सहायता से प्रदर्शित करें। क्वेरी इस प्रकार है -

> db.objectInAnArrayDemo.find().pretty();

निम्न आउटपुट है -

{
   "_id" : ObjectId("5c92635d36de59bd9de06381"),
   "StudentDetails" : [
      {
         "StudentName" : "John",
         "StudentMessage" : "Hi"
      },
      {
         "StudentName" : "Larry",
         "StudentMessage" : "Hello"
      }
   ]
}
{
   "_id" : ObjectId("5c92637936de59bd9de06382"),
   "StudentDetails" : [
      {
         "StudentName" : "Carol",
         "StudentMessage" : "Hello"
      },
      {
         "StudentName" : "David",
         "StudentMessage" : "Good Morning"
      }
   ]
}

यहाँ MongoDB के साथ सरणी में किसी ऑब्जेक्ट में फ़ील्ड के लिए क्वेरी है -

> db.objectInAnArrayDemo.find({"StudentDetails": { $elemMatch: { "StudentMessage": "Good Morning" } } } ).pretty();

निम्न आउटपुट है -

{
   "_id" : ObjectId("5c92637936de59bd9de06382"),
   "StudentDetails" : [
      {
         "StudentName" : "Carol",
         "StudentMessage" : "Hello"
      },
      {
         "StudentName" : "David",
         "StudentMessage" : "Good Morning"
      }
   ]
}

  1. यदि आईडी किसी दस्तावेज़ फ़ील्ड सरणी मान के बराबर है, तो बाहर करने के लिए MongoDB क्वेरी

    इसके लिए $in के साथ $not का प्रयोग करें। आइए दस्तावेजों के साथ एक संग्रह बनाएं - [    {       id: "101",       subjectid: [          "102"       ]    },    {       i

  1. एक सरणी फ़ील्ड वाले दस्तावेज़ों से मिलान करने के लिए MongoDB क्वेरी

    सरणी फ़ील्ड वाले दस्तावेज़ों का मिलान करने के लिए, $elemMatch ऑपरेटर का उपयोग करें। आइए दस्तावेजों के साथ एक संग्रह बनाएं - db.demo592.insertOne(... {... id:102,... विवरण:[... {नाम:क्रिस, मान:500}, ... {नाम:डेविड, वैल्यू:900}...]...}...);{ स्वीकृत:सच, सम्मिलित आईडी:ऑब्जेक्ट आईडी (5e930d90fd2d90c177

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

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