我想使用angular-js和使用正则表达式对mongodb进行find()查询。 但我无法在正则表达式中使用变量模式。
以下是相同的代码。
var User=mongoose.model('User');
exports.searchname = function(req,res){
var pattern="hello";
User.find({displayName:{$regex:"/"+pattern+"/",$options:"si"}}).exec(function(err, data) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.json({Data:data});
}
});
我也尝试使用/ pattern /而不是" /" + pattern +" /"。它也没有成功。
答案 0 :(得分:0)
尝试为您的查询创建 RegExp
对象:
var pattern = new RegExp('hello', 'i'); /* or new RegExp(/hello/, 'i'); */
User.find({displayName: pattern}).exec(function(err, data) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.json({Data:data});
}
});