• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Golang Mongodb模糊查询的使用示例

    前言

    在日常使用的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 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Golang Mongodb模糊查询的使用示例 Golang,Mongodb,模糊,查询,的,