MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

mongodb . में $in ऑपरेटर में रेगेक्स का उपयोग करने में असमर्थ

आपको ऐरे में तत्वों को RegExp वस्तु यानी

regex =[नया RegExp("sai", "i"), new RegExp("test", "i"),...]

आप <कोड का उपयोग कर सकते हैं>नक्शा () सरणी में तत्वों को RegExp रैपर के साथ एक नए सरणी में मैप करने की विधि जिसे आप तब रेगेक्स क्वेरी में उपयोग कर सकते हैं $in :

var x = ["sai","test","jacob","justin"],
    regex = x.map(function (e) { return new RegExp(e, "i"); });

db.users.find({"profile.firstName": { "$in": regex } });

$in का उपयोग करना छोटे सरणियों के साथ काफी कुशल हो सकता है लेकिन विशाल सूचियों के साथ इतना अच्छा नहीं है क्योंकि यह मिलान करने वाले दस्तावेज़ों को खोजने के लिए इंडेक्स में इधर-उधर हो जाएगा, या अगर कोई इंडेक्स उपयोग करने के लिए नहीं है तो पूरे संग्रह के माध्यम से चल सकता है।

इसके अलावा नियमित अभिव्यक्ति के साथ $in का उपयोग करना , आप इस तरह की कीवर्ड सूची के साथ पाइप-सीमांकित रेगेक्स पैटर्न का उपयोग कर सकते हैं:

var x = ["sai","test","jacob","justin"],
    regex = x.join("|");

db.users.find({
    "profile.firstName": {
        "$regex": regex, 
        "$options": "i"
    } 
}).count;


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB चेंज स्ट्रीम के साथ रीयल टाइम डेटा स्ट्रीमिंग

  2. MongoDB कम्पास का उपयोग करके MongoDB में संग्रह में चयनित एकाधिक रिकॉर्ड कैसे हटाएं?

  3. php_ini php.ini स्थान पर सेट नहीं है

  4. वस्तु सरणियों बनाम वस्तुओं पर मोंगो अनुक्रमण

  5. अवैध ब्रेक स्टेटमेंट (Node.js)