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

MongoDB में डिक्शनरी-जैसे स्ट्रक्चर में वैल्यू से कैसे खोजें?

MongoDB में नेस्टेड ऑब्जेक्ट (डिक्शनरी स्ट्रक्चर) में वैल्यू से क्वेरी करना

MongoDB में डिक्शनरी/नेस्टेड ऑब्जेक्ट स्ट्रक्चर के अंदर वैल्यू से डॉक्यूमेंट्स खोजने के लिए डॉट नोटेशन का उपयोग करें।

उदाहरण: नेस्टेड स्ट्रक्चर वाले डॉक्यूमेंट्स बनाना

> db.findInDictionaryDemo.insertOne(
...   {
...     "_id":101,
...     "AllCustomerDetails": {
...       "SomeCustomerDetail1": {
...         "CustomerName1":"John Doe",
...         "CustomerName2":"John Smith"
...       },
...       "SomeCustomerDetail2": {
...         "CustomerName1":"Carol Taylor",
...         "CustomerName2":"David Miller"
...       }
...     }
...   }
... );
{ "acknowledged" : true, "insertedId" : 101 }
> db.findInDictionaryDemo.insertOne(
...   {
...     "_id":102,
...     "AllCustomerDetails": {
...       "SomeCustomerDetail1": {
...         "CustomerName1":"Sam Wiliams",
...         "CustomerName2":"Bob Johnson"
...       },
...       "SomeCustomerDetail2": {
...         "CustomerName1":"Chris Brown",
...         "CustomerName2":"Mike Wilson"
...       }
...     }
...   }
... );
{ "acknowledged" : true, "insertedId" : 102 }

सभी डॉक्यूमेंट्स देखना

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

आउटपुट:

{ "_id" : 101, "AllCustomerDetails" : { "SomeCustomerDetail1" : { "CustomerName1" : "John Doe", "CustomerName2" : "John Smith" }, "SomeCustomerDetail2" : { "CustomerName1" : "Carol Taylor", "CustomerName2" : "David Miller" } } }
{ "_id" : 102, "AllCustomerDetails" : { "SomeCustomerDetail1" : { "CustomerName1" : "Sam Wiliams", "CustomerName2" : "Bob Johnson" }, "SomeCustomerDetail2" : { "CustomerName1" : "Chris Brown", "CustomerName2" : "Mike Wilson" } } }

नेस्टेड वैल्यू "Mike Wilson" से डॉक्यूमेंट खोजना

> db.findInDictionaryDemo.find({"AllCustomerDetails.SomeCustomerDetail2.CustomerName2":"Mike Wilson"}).pretty();

आउटपुट:

{ "_id" : 102, "AllCustomerDetails" : { "SomeCustomerDetail1" : { "CustomerName1" : "Sam Wiliams", "CustomerName2" : "Bob Johnson" }, "SomeCustomerDetail2" : { "CustomerName1" : "Chris Brown", "CustomerName2" : "Mike Wilson" } } }

मुख्य बिंदु:

  • डॉट नोटेशन (.) नेस्टेड फील्ड्स तक पहुंचने के लिए
  • पथ: AllCustomerDetails.SomeCustomerDetail2.CustomerName2
  • कोई विशेष ऑपरेटर नहीं चाहिए, सामान्य क्वेरी सिंटैक्स काम करता है
  • इंडेक्स नेस्टेड फील्ड्स पर भी बना सकते हैं

वाइल्डकार्ड खोज (सभी नेस्टेड फील्ड्स में):

db.findInDictionaryDemo.find({ $where: function() {
  return JSON.stringify(this.AllCustomerDetails).includes("Mike Wilson");
}});

नोट: $where धीमा है, संभव हो तो डॉट नोटेशन उपयोग करें।

  1. - MongoDB find() मेथड के साथ काम करना

    MongoDB में find() मेथड का उपयोग करके दस्तावेज़ क्वेरी करना MongoDB में find() मेथड संग्रह या व्यू में दस्तावेज़ों को चुनता है और चयनित दस्तावेज़ों के लिए एक कर्सर लौटाता है। बुनियादी उपयोग पैरामीटर के बिना find() संग्रह के सभी दस्तावेज़ लौटाता है और दस्तावेज़ों के सभी फील्ड्स शामिल करता है। उदाहर

  1. - MongoDB में नाम से उपयोगकर्ता नहीं मिल रहा?

    MongoDB में नाम से उपयोगकर्ता खोजने के लिए, find() का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo504.insertOne({Name:Chris}); { acknowledged : true, insertedId : ObjectId(5e8823ee987b6e0e9d18f570) } > db.demo504.insertOne({Name:John}); { acknowledged : true, insertedId : Obje

  1. - MongoDB में विशिष्ट मान से कम कीमत वाले रिकॉर्ड ढूंढें

    विशिष्ट मान से कम कीमत वाले रिकॉर्ड जांचने के लिए $lt का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo728.insertOne({Price:75}); { acknowledged : true, insertedId : ObjectId(5eab413c43417811278f589b) } > db.demo728.insertOne({Price:59}); { acknowledged : true, insertedId : ObjectId(5eab4140