这是测试用例:
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进行了测试。
知道为什么吗?
使用时,请勿包含开头和结尾/
字符new RegExp
。这些仅与JavaScript中的文字符号一起使用。您还需要在字符串中转义反斜杠。
db.test.find({ name: { $regex: new RegExp("^((?!nn)[\\s\\S])*$")}});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句