从节点js,我试图基于不区分大小写的关键字检索文档。当我直接从mongo db控制台尝试时,我能够看到结果。
db.users.findOne({"displayName":{$regex: /.*abc./, $options:"i"}})
但是当我在节点js中尝试相同的时候,我的结果是空的。
var selector = { "displayName": {$regex: "/.*abc./", $options:"i"}}
这是因为正则表达式不在javascript中。
任何人都可以帮助我。
答案 0 :(得分:19)
$regex
值必须是要匹配的字符串模式或正则表达式对象。传递字符串模式时,您不会在node.js代码中包含/
分隔符。
因此,其中任何一个都可以在node.js中使用:
var selector = {"displayName": {$regex: ".*abc.", $options:"i"}}
OR
var selector = {"displayName": {$regex: /.*abc./, $options:"i"}}
答案 1 :(得分:10)
var getValue='abc';
db.users.findOne({"displayName": new RegExp(regexValue, 'i')},function(err,res){if(err){console.log(err);}
否则{的console.log(res.length);} } )
答案 2 :(得分:1)
在mongodb控制台中 试试这个查询
db.users.findOne({“ displayName”:{$ regex:“。* abc”,$ options:“ i”}})
和在nodejs中 var选择器= users.find({“ displayName”:{$ regex:“。* abc”,$ options:“ i”}})
此处users =是集合名称