ノードjsから、大文字と小文字を区別せずにキーワードに基づいてドキュメントを取得しようとしています。 mongo dbコンソールから直接試すと、結果を確認できます。
db.users.findOne({"displayName":{$regex: /.*abc./, $options:"i"}})
しかし、ノードjsで同じことを試みると、空の結果が得られます。
var selector = { "displayName": {$regex: "/.*abc./", $options:"i"}}
これはJavaScriptではない正規表現によるものです。
誰でも私を助けてくれませんか?.
$regex
の値は、一致する文字列パターンまたは正規表現オブジェクトのいずれかである必要があります。文字列パターンを渡すときは、node.jsコードで行っているような/
区切り文字を含めないでください。
したがって、これらのいずれかがnode.jsで機能します。
var selector = {"displayName": {$regex: ".*abc.", $options:"i"}}
OR
var selector = {"displayName": {$regex: /.*abc./, $options:"i"}}
これを試して頂けますか?.
var getValue = "abc";
db.users.findOne({ displayName: new RegExp(regexValue, "i") }, function(err, res) {
if (err) {
console.log(err);
} else {
console.log(res.length);
}
});
Mongodbコンソールでこのクエリを試してください
db.users.findOne({"displayName":{$regex: ".*abc", $options:"i"}})
そしてnodejs var selector = users.find({ "displayName": {$regex: ".*abc", $options:"i"}})
ここでusers =はコレクション名です