Soo*_*ash 13 javascript regex mongodb node.js
从节点js,我试图基于不区分大小写的关键字检索文档.当我直接从mongo db控制台尝试时,我能够看到结果.
db.users.findOne({"displayName":{$regex: /.*abc./, $options:"i"}})
Run Code Online (Sandbox Code Playgroud)
但是当我在节点js中尝试相同时,我得到空的结果.
var selector = { "displayName": {$regex: "/.*abc./", $options:"i"}}
Run Code Online (Sandbox Code Playgroud)
这是由于正则表达式不是在JavaScript中.
任何人都可以帮助我.
Joh*_*yHK 20
该$regex
值必须是要匹配的字符串模式或正则表达式对象.传递字符串模式时,不会/
像在node.js代码中那样包含分隔符.
所以这些都可以在node.js中使用:
var selector = {"displayName": {$regex: ".*abc.", $options:"i"}}
Run Code Online (Sandbox Code Playgroud)
要么
var selector = {"displayName": {$regex: /.*abc./, $options:"i"}}
Run Code Online (Sandbox Code Playgroud)
小智 11
你能不能试试这个,它适合我.
var getValue='abc';
db.users.findOne({"displayName": new RegExp(regexValue, 'i')},function(err,res){if(err){console.log(err);}
Run Code Online (Sandbox Code Playgroud)
else {console.log(res.length);}})
小智 5
在 mongodb 控制台中尝试这个查询
db.users.findOne({"displayName":{$regex: ".*abc", $options:"i"}})
在nodejs中
var selector = users.find({ "displayName": {$regex: ".*abc", $options:"i"}})
这里的 users = 是一个集合名称