MongoDB में ऐरे फील्ड पर मल्टीपल क्राइटेरिया (जैसे: मान -20 से बड़ा और 20 से छोटा) के साथ खोज के लिए $elemMatch के साथ $gt और $lt का उपयोग करें।
सिंटैक्स
db.yourCollectionName.find({yourFieldName: {$elemMatch: {$gt: yourNegativeValue, $lt: yourPositiveValue}}}).pretty();
उदाहरण से समझें
एक कलेक्शन बनाकर डॉक्यूमेंट इन्सर्ट करते हैं:
> db.findValueInArrayWithMultipleCriteriaDemo.insertOne({"StudentName": "Larry", "StudentMarks": [-150, 150]});
> db.findValueInArrayWithMultipleCriteriaDemo.insertOne({"StudentName": "Mike", "StudentMarks": [19]});
सभी डॉक्यूमेंट देखने के लिए:
> db.findValueInArrayWithMultipleCriteriaDemo.find().pretty();
आउटपुट:
{ "_id": ..., "StudentName": "Larry", "StudentMarks": [-150, 150] }
{ "_id": ..., "StudentName": "Mike", "StudentMarks": [19] }
अब ऐरे में ऐसी वैल्यू खोजें जो -20 से बड़ी और 20 से छोटी हो:
> db.findValueInArrayWithMultipleCriteriaDemo.find({StudentMarks: {$elemMatch: {$gt: -20, $lt: 20}}}).pretty();
आउटपुट:
लैरी के ऐरे में -150 और 150 हैं - दोनों शर्तें पूरी नहीं करते। माइक का 19 दोनों शर्तें पूरी करता है।