我只想问,如何将变量传递到猫鼬查询?我已经尝试过,但是总是取得空洞的结果。
exports.persontSearch = function (req, res, search) {
PersonInfo.find({$or: [
// {'name.first': /.*search.*/},
// {'name.last': /.*search.*/}
// {'name.first': {$regex: /.* + search + .*/}},
// {'name.last': /.*search.*/}
{'name.first': new RegExp('/.*' + search + '/.*')},
{'name.last': /.*search.*/}
]}, function (err, person) {
if (err) {
winston.error(err);
res.json(err);
}
res.json({
result: person
});
});
};
,但是如果我将search
变量更改为实际值,则返回了预期的结果。
请帮助。
btw是否可以避免new RegExp
?
在@johnnyhk提供的评论中。工作样本就是这样。
exports.personSearch = function (req, res, search) {
PersonInfo.find({
$or: [
{ 'name.first': { $regex: search } },
{ 'name.last': { $regex: search } }
]
}, function (err, person) {
if (err) {
winston.error(err);
res.json(err);
}
res.json(person);
});
};
尝试以下:
searchvalue = "/^abc/i";
exports.persontSearch = function (req, res, search) {
PersonInfo.find({$or: [
{'name.first': {$regex: searchvalue }}
]}, function (err, person) {
if (err) {
winston.error(err);
res.json(err);
}
res.json({
result: person
});
});
};