テストケースは次のとおりです。
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 を使用してこれをテストしました。
理由はありますか?