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 हो |