जवाबों:
आप इसे निम्न कोड के साथ कर सकते हैं।
db.users.findOne({"username" : {$regex : ".*son.*"}});
db.users.findOne({"username" : {$regex : "son"}});
जैसा कि मैंगो शेल रेगेक्स का समर्थन करता है, यह पूरी तरह से संभव है।
db.users.findOne({"username" : /.*son.*/});
यदि हम चाहते हैं कि क्वेरी केस-असंवेदनशील हो, तो हम "i" विकल्प का उपयोग कर सकते हैं, जैसे नीचे दिखाया गया है:
db.users.findOne({"username" : /.*son.*/i});
देखें: http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-RegularExpressions
db.users.findOne({"username" : /.*son.*/});
ओवरकिल भी हो सकता है और रेगेक्स सरल हो सकता है/son/
{ username: /son/ }
https://docs.mongodb.com/manual/reference/sql-comparison/
http://php.net/manual/en/mongo.sqltomongo.php
माई एसक्यूएल
SELECT * FROM users WHERE username LIKE "%Son%"
MongoDB
db.users.find({username:/Son/})
संस्करण 2.4 के अनुसार, आप खोज के लिए $ टेक्स्ट ऑपरेटर की खोज और उपयोग करने के लिए फ़ील्ड (ओं) पर एक टेक्स्ट इंडेक्स बना सकते हैं ।
सबसे पहले, सूचकांक बनाएं:
db.users.createIndex( { "username": "text" } )
फिर, खोज करने के लिए:
db.users.find( { $text: { $search: "son" } } )
बेंचमार्क (~ 150K दस्तावेज़):
टिप्पणियाँ:
db.collection.createIndex( { "$**": "text" } )
:।चूंकि यह खोज इंजन में पहली हिट में से एक है, और उपरोक्त में से कोई भी MongoDB 3.x के लिए काम नहीं करता है, यहां एक रेगेक्स खोज है जो काम करती है:
db.users.find( { 'name' : { '$regex' : yourvalue, '$options' : 'i' } } )
कोई जरूरत नहीं है और अतिरिक्त सूचकांक या एक जैसे बनाने की जरूरत है।
यदि आप MongoDB को पायथन के माध्यम से जोड़ रहे हैं तो आपको यहां क्या करना है
db.users.find({"username": {'$regex' : '.*' + 'Son' + '.*'}})
आप 'सोन' के बजाय एक चर नाम का उपयोग कर सकते हैं और इसलिए स्ट्रिंग संघनन।
.*${value}.*
}
इस कार्य को पूरा करने का सबसे सरल तरीका
यदि आप क्वेरी को केस-संवेदी बनाना चाहते हैं
db.getCollection("users").find({'username':/Son/})
यदि आप चाहते हैं कि क्वेरी केस-असंवेदनशील हो
db.getCollection("users").find({'username':/Son/i})
यह काम करना चाहिए
db.users.find({ username: { $in: [ /son/i ] } });
i
सिर्फ वहाँ पत्र के एकल मामलों मिलान के प्रतिबंध को रोकने के लिए है।
आप MongoDB प्रलेखन पर $ regex प्रलेखन की जांच कर सकते हैं। यहां एक लिंक है: https://docs.mongodb.com/manual/reference/operator/query/regex/
RegExp मैच में HTML टैग्स को कैसे नजरअंदाज करें:
var text = '<p>The <b>tiger</b> (<i>Panthera tigris</i>) is the largest <a href="https://stackoverflow.com/wiki/Felidae" title="Felidae">cat</a> <a href="https://stackoverflow.com/wiki/Species" title="Species">species</a>, most recognizable for its pattern of dark vertical stripes on reddish-orange fur with a lighter underside. The species is classified in the genus <i><a href="https://stackoverflow.com/wiki/Panthera" title="Panthera">Panthera</a></i> with the <a href="https://stackoverflow.com/wiki/Lion" title="Lion">lion</a>, <a href="https://stackoverflow.com/wiki/Leopard" title="Leopard">leopard</a>, <a href="https://stackoverflow.com/wiki/Jaguar" title="Jaguar">jaguar</a>, and <a href="https://stackoverflow.com/wiki/Snow_leopard" title="Snow leopard">snow leopard</a>. It is an <a href="https://stackoverflow.com/wiki/Apex_predator" title="Apex predator">apex predator</a>, primarily preying on <a href="https://stackoverflow.com/wiki/Ungulate" title="Ungulate">ungulates</a> such as <a href="https://stackoverflow.com/wiki/Deer" title="Deer">deer</a> and <a href="https://stackoverflow.com/wiki/Bovid" class="mw-redirect" title="Bovid">bovids</a>.</p>';
var searchString = 'largest cat species';
var rx = '';
searchString.split(' ').forEach(e => {
rx += '('+e+')((?:\\s*(?:<\/?\\w[^<>]*>)?\\s*)*)';
});
rx = new RegExp(rx, 'igm');
console.log(text.match(rx));
यह संभवतः एक MongoDB एकत्रीकरण फ़िल्टर में बदलना बहुत आसान है।