我在使用Mongoose进行$ regex查询时遇到了麻烦;
以下工作正常:
Media.count(
{ "filename" :
{ $regex: /placeholder(-)?(\w+.)?.(\w+)?$/gm } },
function(err, res){
...
以下不起作用:
var xp = new RegExp("placeholder(-)?(\w+.)?.(\w+)?$", "gm")
Media.count(
{ "filename" :
{ $regex: xp } },
function(err, res){
...
我也尝试了以下不起作用:
var xp = new RegExp("placeholder(-)?(\w+.)?.(\w+)?$")
Media.count(
{ "filename" :
{ $regex: xp, $options: 'gm' } },
function(err, res){
...
出于某种原因,我觉得Mongoose不接受RegExp对象?我遇到的问题是我需要用变量替换'占位符',因此我需要使用RegExp来完成这个...
任何人在
之前遇到过这个问题答案 0 :(得分:0)
我刚刚发现了我的错误,如果其他人遇到同样的问题,请在此处添加:
使用新的RegExp时,您需要确保以这种方式转义反斜杠:
正确的方式:
var xp = new RegExp("placeholder(-)?(\\w+.)?.(\\w+)?$")
错误的方式:
var xp = new RegExp("placeholder(-)?(\w+.)?.(\w+)?$")