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

नेवला:रेगेक्स के साथ पूरा नाम पूछें

खोज शब्द को शब्दों से अलग करें, और एक वैकल्पिक ऑपरेटर ('|') का उपयोग करके उन्हें अलग करें।

var terms = req.params.search.split(' ');

var regexString = "";

for (var i = 0; i < terms.length; i++)
{
    regexString += terms[i];
    if (i < terms.length - 1) regexString += '|';
}

var re = new RegExp(regexString, 'ig');

इनपुट के लिए 'John Smith' , यह एक रेगेक्स बनाएगा जो /John|Smith/ig . जैसा दिखता है . यह अलग-अलग शब्दों के साथ-साथ काम के लिए भी सही होगा जब इनपुट सिर्फ 'John Sm' . होगा

आप आसपास खेल सकते हैं इस रेगेक्स के साथ अपनी आवश्यकताओं के अनुरूप एक और अधिक प्राप्त करने के लिए।

संपादित करें:

यहां समस्या यह है कि आपके नाम फ़ील्ड अलग हैं। इस मामले में, दोनों क्षेत्रों में समान रेगेक्स लागू करने से आपके इच्छित परिणाम नहीं मिलेंगे। रेगेक्स को उसी फ़ील्ड में पूरे नाम के साथ लागू करने की आवश्यकता है।

एक संभावित समाधान एकत्रीकरण का उपयोग कर रहा है:

User.aggregate()
    .project({fullName: {$concat: ['$firstName', ' ', '$lastName']}})
    .match({fullName: re})



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेस्टेड सरणियों को अद्यतन करने के लिए स्थितीय `$` ऑपरेटर का एकाधिक उपयोग

  2. मोंगो खोल के माध्यम से mongoDB में नेस्टेड सरणियों को अद्यतन कर रहा है

  3. कैसे एक Node.js / एक्सप्रेस ऐप में नेवला पूर्व हुक के भीतर से क्वेरी करने के लिए?

  4. MongoDB - बड़ी संख्या में डेटाबेस

  5. मैं ALPS/HATEOAS मेटाडेटा के साथ स्प्रिंग डेटा MongoDB रिपॉजिटरी के माध्यम से एक नई REST विधि का खुलासा कैसे करूं?