当前位置: 代码网 > it编程>数据库>Nosql > mongose 模糊检索实现方法示例详解

mongose 模糊检索实现方法示例详解

2024年05月15日 Nosql 我要评论
条件查找$regex为模糊查询的字符串提供正则表达式功能,mongodb使用perl兼容正则表达式//通过条件查找,支持username模糊搜索并分页 findadminbyparamsandp

条件查找

$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 模糊检索的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com