MongoDB में $in ऑपरेटर का उपयोग करके ऐरे में मान की जांच करना
$in ऑपरेटर उन डॉक्यूमेंट्स को चुनता है जहां एक फील्ड का मान निर्दिष्ट सरणी में किसी भी मान से मेल खाता है। जब एक ऐरे फील्ड पर लागू किया जाता है, तो यह जांचता है कि क्या ऐरे में प्रदान किए गए मानों में से कम से कम एक मान है।
नमूना डेटा बनाना
> db.valueInArrayDemo.insertOne({"UserName":"John","UserMessage":["Hi","Hello","Bye"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd684cf7924bb85b3f48959") }
> db.valueInArrayDemo.insertOne({"UserName":"Larry","UserMessage":["Thank You","Amazing","Nice"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd684d27924bb85b3f4895a") }
> db.valueInArrayDemo.insertOne({"UserName":"Carol","UserMessage":["Awesome","Bye","Cool"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd684d87924bb85b3f4895b") }
सभी डॉक्यूमेंट्स देखना
> db.valueInArrayDemo.find().pretty();
आउटपुट:
{ "_id" : ObjectId("5cd684cf7924bb85b3f48959"), "UserName" : "John", "UserMessage" : [ "Hi", "Hello", "Bye" ] }
{ "_id" : ObjectId("5cd684d27924bb85b3f4895a"), "UserName" : "Larry", "UserMessage" : [ "Thank You", "Amazing", "Nice" ] }
{ "_id" : ObjectId("5cd684d87924bb85b3f4895b"), "UserName" : "Carol", "UserMessage" : [ "Awesome", "Bye", "Cool" ] }
"Bye" मान वाले डॉक्यूमेंट्स के लिए क्वेरी करना
> db.valueInArrayDemo.find({UserMessage:{$in:["Bye"]}});
आउटपुट:
{ "_id" : ObjectId("5cd684cf7924bb85b3f48959"), "UserName" : "John", "UserMessage" : [ "Hi", "Hello", "Bye" ] }
{ "_id" : ObjectId("5cd684d87924bb85b3f4895b"), "UserName" : "Carol", "UserMessage" : [ "Awesome", "Bye", "Cool" ] }
यह कैसे काम करता है
{ UserMessage: { $in: ["Bye"] } }-UserMessageऐरे में "Bye" स्ट्रिंग वाले डॉक्यूमेंट्स से मेल खाता है।$inऐरे फील्ड्स और स्केलर फील्ड्स दोनों पर काम करता है।- आप मल्टीपल मान पास कर सकते हैं:
{ $in: ["Bye", "Hello"] }किसी भी मान से मेल खाता है।
संबंधित ऑपरेटर्स
- $nin - उन डॉक्यूमेंट्स से मेल खाता है जहां फील्ड मान सरणी में नहीं है।
- $all - उन डॉक्यूमेंट्स से मेल खाता है जहां ऐरे में सभी निर्दिष्ट मान हैं (किसी भी क्रम में)।
- $elemMatch - एक ही ऐरे तत्व के लिए मल्टीपल शर्तों से मेल खाता है (ऑब्जेक्ट्स के ऐरे के लिए)।
प्रदर्शन टिप
बड़े ऐरे या उच्च-कार्डिनैलिटी फील्ड्स पर $in क्वेरीज़ के लिए, क्वेरी प्रदर्शन में सुधार के लिए फील्ड पर इंडेक्स बनाने पर विचार करें।