条件查找
$regex为模糊查询的字符串提供正则表达式功能,mongodb使用perl兼容正则表达式
//通过条件查找,支持username模糊搜索并分页 findadminbyparamsandpagehasfuzzy(params, pager) { if (params.username) { let pattern = new regexp(params.username); params.username = { $regex: pattern, $options: 'imxs' }; } if (params.orgname) { let pattern = new regexp(params.orgname); params.orgname = { $regex: pattern, $options: 'imxs' }; } if (params.adminroles) { params.adminroles = mongoose.types.objectid(params.adminroles); } adminhandler.searchparamsclearemptyvalue(params); return promise.all([ adminmodel.find(params, { password: 0 }).count().exec(), adminmodel.find(params, { password: 0 }).sort({ _id: -1 }).populate("adminroles").skip((pager.pageindex - 1) * pager.pagesize).limit(pager.pagesize).exec() ]) }
regexp 对象
regexp 对象用于存储检索模式。通过 new 关键词来定义 regexp 对象
regexp 对象有 3 个方法:test()、exec() 以及 compile()
- test() 方法检索字符串中的指定值。返回值是 true 或 false;
- exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null
var patt1=new regexp("e"); document.write(patt1.exec("the best things in life are free"));
- compile() 方法用于改变 regexp。compile() 既可以改变检索模式,也可以添加或删除第二个参数;
var patt1=new regexp("e"); document.write(patt1.test("the best things in life are free")); patt1.compile("d"); document.write(patt1.test("the best things in life are free"));
以上就是mongose 模糊检索实现示例详解的详细内容,更多关于mongose 模糊检索的资料请关注代码网其它相关文章!
发表评论