• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Golang Mongodb模糊查询的使用示例
    POST TIME:2021-10-18 17:32

    前言

    在日常使用的Mongodb中,有一项功能叫做模糊查询(使用正则匹配),例如:

    db.article.find({"title": {$regex: /a/, $options: "im"}})

    这是我们常用Mongodb的命令行使用的方式,但是在mgo中做出类似的方式视乎是行不通的:

    query := bson.M{"title": bson.M{"$regex": "/a/", "$options": "im"}}

    大家用这个方式去查询,能查询到算我输!

    下面总结一下,正真使用的方式:

    在Mongodb的命令行中,我们可以使用形如 \abcd\ 的方式来作为我们的pattern,但是在mgo是直接传入字符串来进行的,也就是传入的是"\a",而不是\a\。

    根据第一点,我们将代码修改一下。

    query := bson.M{"title": bson.M{"$regex": "a", "$options": "im"}}

    但是我们会发现依然不能得到我们想要的结果,那么第二点就会产生了!

    在mgo中要用到模糊查询需要mgo中自带的一个结构: bson.RegEx

    // RegEx represents a regular expression. The Options field may contain
    // individual characters defining the way in which the pattern should be
    // applied, and must be sorted. Valid options as of this writing are 'i' for
    // case insensitive matching, 'm' for multi-line matching, 'x' for verbose
    // mode, 'l' to make \w, \W, and similar be locale-dependent, 's' for dot-all
    // mode (a '.' matches everything), and 'u' to make \w, \W, and similar match
    // unicode. The value of the Options parameter is not verified before being
    // marshaled into the BSON format.
    type RegEx struct {
    Pattern string
    Options string
    }

    那么最终我们的代码为:

    query := bson.M{"title": bson.M{"$regex": bson. RegEx:{Pattern:"/a/", Options: "im"}}}

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

    您可能感兴趣的文章:
    • mongodb官方的golang驱动基础使用教程分享
    • golang 连接mongoDB的方法示例
    • Golang对MongoDB数据库的操作简单封装教程
    • golang操作mongodb的方法
    • 详解Golang使用MongoDB通用操作
    上一篇:golang 之import和package的使用
    下一篇:Go语言range关键字循环时的坑
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信