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

MongoDB में ऐरे में विशिष्ट एट्रिब्यूट्स वाले दस्तावेज़ प्राप्त करें

MongoDB में $and और डॉट नोटेशन का उपयोग करके ऐरे एलिमेंट्स फ़िल्टर करना

जब आपको ऐसे दस्तावेज़ खोजने हों जहां ऐरे में **एकाधिक विशिष्ट एट्रिब्यूट्स** वाले एलिमेंट्स मौजूद हों, तो $and के साथ डॉट नोटेशन का उपयोग करें।

सैंपल डेटा बनाना


दस्तावेज़ देखना

{ "_id" : ObjectId("5e08b56e25ddae1f53b62219"), "StudentInformation" : [ { "StudentName" : "John", "StudentAge" : 21 }, { "StudentName" : "Mike", "StudentAge" : 22 } ] }
{ "_id" : ObjectId("5e08b58625ddae1f53b6221a"), "StudentInformation" : [ { "StudentName" : "Carol", "StudentAge" : 19 }, { "StudentName" : "Bob", "StudentAge" : 18 } ] }

क्वेरी: Carol और Bob दोनों नाम वाले एलिमेंट्स वाले दस्तावेज़ खोजें


आउटपुट:


कैसे काम करता है

  • StudentInformation.StudentName ऐरे में **किसी भी** एलिमेंट के StudentName से मेल खाता है
  • $and दोनों शर्तों को एक साथ लागू करता है
  • परिणाम: दस्तावेज़ जहां ऐरे में **कम से कम एक** "Carol" और **कम से कम एक** "Bob" हो

महत्वपूर्ण: $elemMatch के साथ अंतर


सटीक मिलान के लिए $elemMatch (एक ही एलिमेंट पर एकाधिक फ़ील्ड्स)


सारांश

पैटर्नअर्थ
{ "arr.field": val1, "arr.field": val2 }ऐरे में val1 वाला एलिमेंट हो AND val2 वाला एलिमेंट हो (अलग-अलग हो सकते हैं)
{ $and: [ { "arr.field": val1 }, { "arr.field": val2 } ] }ऊपर के समान
{ arr: { $elemMatch: { field: val1, field2: val2 } } }एक ही एलिमेंट में field=val1 AND field2=val2 हो
  1. - MongoDB क्वेरी: ऐरे फील्ड वाले दस्तावेजों को मैच करें

    ऐरे फील्ड वाले दस्तावेजों को मैच करने के लिए, $elemMatch ऑपरेटर का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo592.insertOne({ id:101, details: [ { Name: Chris, Value: 200 }, { Name: David, Value: 800 } ] }); { acknowledged : true, insertedId : Ob

  1. - MongoDB दस्तावेज़ों में विशिष्ट फ़ील्ड के ऐरे एलिमेंट्स काउंट करना

    किसी फ़ील्ड में ऐरे एलिमेंट्स की संख्या गिनने के लिए $size ऑपरेटर का उपयोग करें। डेमो डेटा > db.demo723.insertOne({Subject:[MySQL,MongoDB]}); > db.demo723.insertOne({Subject:[C]}); > db.demo723.insertOne({Subject:[C++,Java,Python]}); क्वेरी db.demo723.aggregate([ { $project: { count:

  1. - MongoDB में विशिष्ट नेस्टेड डॉक्यूमेंट्स के लिए ऑब्जेक्ट्स की सरणी पर क्वेरी कैसे करें?

    ऑब्जेक्ट्स की सरणी के लिए नेस्टेड डॉक्यूमेंट्स पर क्वेरी करने के लिए find() का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo763.insertOne( { _id:1, CountryName:US, studentInformation: [ { StudentName:Chris }, { StudentName:David, StudentAge:22 } ] } ); { acknowledged : true, insertedId : 1 } f