来自node.js的Mongo db的正则表达式不起作用

时间:2016-12-14 14:18:42

标签: regex node.js mongodb

我正在使用正则表达式从我的节点js应用程序中获取mongodb中的数据。这是代码片段。查询无法与记录集匹配。

var analysis_date = '/^'+moment(fromTime).format('YYYY-MM').toString()+'/';
user_analysis.find({
parent_id: usrId,
analysis_date: { 
    $regex : analysis_date 
   }
},function(err, result) {
//some Code goes here});

1 个答案:

答案 0 :(得分:1)

不要将正则表达式指定为字符串,而是尝试传递RegExp对象:

user_analysis.find({
    "parent_id": usrId,
    "analysis_date": new RegExp(analysis_date, 'i')
}, function(err, result) {
    // ...
});

如果需要,您也可以传递字符串,但是您需要删除/分隔符:

user_analysis.find({
    "parent_id": usrId,
    "analysis_date": {
        $regex: '^' + moment(fromTime).format('YYYY-MM').toString(),
        $options: "i"
    }
}, function(err, result) {
    // ...
});