MongoDB में $eq ऑपरेटर का उपयोग करके ऐरे फील्ड में मान मिलान करना
MongoDB में किसी ऐरे फील्ड में विशिष्ट मान वाले दस्तावेज़ खोजने के लिए $eq ऑपरेटर या सीधे मान का उपयोग करें। MongoDB स्वतः ऐरे के भीतर मान की जांच करता है।
उदाहरण: संग्रह और दस्तावेज़ बनाना
> db.demo426.insert({"Ids":["110","120","101"]});
WriteResult({ "nInserted" : 1 })
> db.demo426.insert({"Ids":["100","201","401"]});
WriteResult({ "nInserted" : 1 })
> db.demo426.insert({"Ids":["501","600","700"]});
WriteResult({ "nInserted" : 1 })
सभी दस्तावेज़ देखना
> db.demo426.find().pretty();
आउटपुट:
{ "_id" : ObjectId("5e75e50fbbc41e36cc3cae72"), "Ids" : [ "110", "120", "101" ] }
{ "_id" : ObjectId("5e75e51abbc41e36cc3cae73"), "Ids" : [ "100", "201", "401" ] }
{ "_id" : ObjectId("5e75e527bbc41e36cc3cae74"), "Ids" : [ "501", "600", "700" ] }
"501" मान वाले दस्तावेज़ खोजना ($eq के साथ)
> db.demo426.find({"Ids":{$eq:"501"}});
आउटपुट:
{ "_id" : ObjectId("5e75e527bbc41e36cc3cae74"), "Ids" : [ "501", "600", "700" ] }
व्याख्या:
- MongoDB में
{field: value}सिंटैक्स ऐरे फील्ड के लिए स्वतः{field: {$eq: value}}जैसा व्यवहार करता है - यह जांचता है कि ऐरे में निर्दिष्ट मान मौजूद है या नहीं
$eqस्पष्ट रूप से समानता निर्दिष्ट करता है (पठनीयता के लिए)
समतुल्य सरल सिंटैक्स:
db.demo426.find({"Ids": "501"})
यह समान परिणाम देता है और अधिक संक्षिप्त है।
ऐरे क्वेरी के अन्य ऑपरेटर्स:
| ऑपरेटर | उपयोग | उदाहरण |
|---|---|---|
$in | किसी भी मान से मेल | {Ids: {$in: ["101", "501"]}} |
$all | सभी मान मौजूद हों | {Ids: {$all: ["101", "110"]}} |
$size | ऐरे आकार | {Ids: {$size: 3}} |
$elemMatch | ऑब्जेक्ट ऐरे में शर्त | {arr: {$elemMatch: {a: 1, b: 2}}} |
नोट: ऐरे में ऑब्जेक्ट्स हों तो डॉट नोटेशन या $elemMatch उपयोग करें।