आपको ऐरे में तत्वों को 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;