Answers:
对于那些正在寻找解决方案的人,这里是:
var name = 'Peter';
model.findOne({name: new RegExp('^'+name+'$', "i")}, function(err, doc) {
//Do your action here..
});
".*"
了一个用户名作为用户名。
我最近对此有疑问,我使用此代码并为我正常工作。
var data = 'Peter';
db.User.find({'name' : new RegExp(data, 'i')}, function(err, docs){
cb(docs);
});
使用直接/Peter/i
工作,但我使用'/'+data+'/i'
而不是为我工作。
db.users.find( { 'username' : { '$regex' : req.body.keyWord, '$options' : 'i' } } )
collection.findOne({
username: /peter/i
}, function (err, user) {
assert(/peter/i.test(user.username))
})
new RegExp(var, "i")
猫鼬文档查找。正则表达式的mongodb doc。
var Person = mongoose.model('Person', yourSchema);
// find each person with a name contains 'Ghost'
Person.findOne({ "name" : { $regex: /Ghost/, $options: 'i' } },
function (err, person) {
if (err) return handleError(err);
console.log('%s %s is a %s.', person.name.first, person.name.last, person.occupation);
});
请注意,我们传递给mongoose.findOne
函数的第一个参数:{ "name" : { $regex: /Ghost/, $options: 'i' } }
,"name"
是您要搜索的文档的字段,"Ghost"
是正则表达式,"i"
不区分大小写。希望这会帮助你。
这是我的expressJS代码:
router.route('/wordslike/:word')
.get(function(request, response) {
var word = request.params.word;
Word.find({'sentence' : new RegExp(word, 'i')}, function(err, words){
if (err) {response.send(err);}
response.json(words);
});
});
只是补充@PeterBechP的答案。
不要忘记转义特殊字符。 https://stackoverflow.com/a/6969486
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}
var name = 'Peter+with+special+chars';
model.findOne({name: new RegExp('^'+escapeRegExp(name)+'$', "i")}, function(err, doc) {
//Do your action here..
});
Peter
或PeTER
无论是作为LIKE
不区分大小写。