在Mongodb中搜索从API传递变量(搜索项)

时间:2018-01-22 09:05:53

标签: node.js regex mongodb

我正在使用Nodejs和Mongodb。我已经编写了一个API来返回针对搜索属性的文档,我已经设法返回包含搜索条件的所有结果。这是我正在使用的代码

collection.find({ "phone": new RegExp(req.params.phone, 'i') }, function (err, task) {
    if (err)
      res.send(err);
    res.json(task);
  }); 

一切似乎都运行良好但是当我使用以+开头的字符串进行搜索时,我得到以下异常

Invalid regular expression: /.*+.*/: Nothing to repeat

这似乎与我创建regex expression的内容有关,我对regex不太满意。

任何帮助将不胜感激

由于

1 个答案:

答案 0 :(得分:2)

我认为您需要使用+see here)转义\字符,因为它在正则表达式中使用至少重复一次模式。

  • .*表示重复0次或更多次
  • .+表示重复1次或更多次
  • .*+休息

希望它能解决你当前的问题,同时也注意到你的正则表达式非常松散,甚至可以捕获任何特殊的字符和字符串。空格。