MongoDB RegExp不一致

时间:2014-10-08 15:37:26

标签: node.js mongodb mongoose robo3t

以下是测试用例:

db.test.insert({ name: "john"});
db.test.insert({ name: "donny"});
db.test.insert({ name: "lenny"});

db.test.find({ name: { $regex: /^((?!nn)[\s\S])*$/}}); //works fine, returns only john
db.test.find({ name: { $regex: new RegExp("/^((?!nn)[\s\S])*$/")}}); //returns nothing

正则表达式应该返回不包含“nn”的对象,但在使用RegExp对象时它不起作用。我用Robomongo测试了这个。

知道为什么吗?

1 个答案:

答案 0 :(得分:2)

使用/时,请勿包含前导{* 1}}字符。这些仅用于JavaScript中的文字符号。您还需要在字符串中转义反斜杠。

new RegExp