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

MongoDB क्वेरी: ऐरे प्रॉपर्टी में मान है या नहीं जांचें?

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 क्वेरीज़ के लिए, क्वेरी प्रदर्शन में सुधार के लिए फील्ड पर इंडेक्स बनाने पर विचार करें।

  1. MongoDB क्वेरी: आईडी को सरणी फ़ील्ड मान से बाहर कैसे करें MongoDB क्वेरी: आईडी को सरणी फ़ील्ड मान से बाहर कैसे करें

    इसके लिए $not के साथ $in ऑपरेटर का उपयोग करें। आइए एक संग्रह बनाते हैं: [ { id: 101, subjectid: [ 102 ] }, { id: 102, subjectid: [ 102 ] } ] सभी दस्तावेज़ देखने के लिए: db.collection.find() आउटपुट: [ { _id: ObjectId(5a934e000102030405000000),

  1. - MongoDB में सरणी क्वेरी करके विशिष्ट मान प्राप्त करें

    सरणी से विशिष्ट मान प्राप्त करने के लिए aggregate() के साथ $project का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo761.insertOne( { details: [ { student: { FullName: Chris Brown } } ] } ); { acknowledged : true, insertedId : ObjectId(5eb034d15637cd592b2a4af1) } > db.demo761.insertOne( { de

  1. - C# प्रोग्राम: जांचें कि मान सरणी में है या नहीं

    किसी मान की जांच के लिए कि वह सरणी में है या नहीं, Array.Exists विधि का उपयोग करें। एक स्ट्रिंग सरणी सेट करें: string[] strArray = new string[] {keyboard, screen, mouse, charger }; मान लीजिए आपको सरणी में keyboard मान खोजना है। इसके लिए Array.Exists() का उपयोग करें: ele == keyboard); यदि तत्व मौजूद