MongoDB模糊查询($regex查询、正则表达式匹配查询)

MongoDB模糊查询($regex查询、正则表达式匹配查询)MongoDB的模糊查询可以使用$regex运算符通过正则表达式来进行匹配查询。$regex:为查询中的模式匹配字符串提供正则表达式功能。语法:{<field>:{$regex:/pattern/,$options:‘’}}{<field>:{$regex:‘pattern’,$optio…

大家好,又见面了,我是你们的朋友全栈君。

MongoDB的模糊查询可以使用 $regex 运算符通过正则表达式来进行匹配查询。

$regex :为查询中的模式匹配字符串提供正则表达式功能 。

语法:

{ < field >: { $ regex : / pattern / , $ options : ‘’ } }
{ < field >: { $ regex : ‘pattern’ , $ options : ‘’ } }
{ < field > : { $ regex : / pattern / < options > } }

(上面三种写法任选其一)

示例:

一、某文档包含某字段的模糊查询:
使用 sql 的写法
select * from member where name like '%XXX%'
在mongodb中:
db.member.find({"name":{ $regex:/XXX/ }})

二、查询以某字段为开头的文档
db.member.find({"name":{$regex:/^XXX/}})

三、查询以某字段为结尾的文档
db.member.find({"name":{$regex:/XXX^/}})

四、查询忽略大小写
db.member.find({"name":{$regex:/XXX/i}})

这里的 i 就是指最上面语法中的那个 options 的值
i 是其的一个选项,代表忽略大小写的意思。
这里 options 还有以下几个选项供使用:

选项 描述 语法限制
i 不区分大小写以匹配大小写的情况。
m 对于包含锚点的模式(即^,对于开始, $结束),在每行的开头或结尾处匹配具有多行值的字符串。如果没有此选项,这些锚点将在字符串的开头或结尾处匹配,如果模式不包含锚点或者字符串值没有换行符(例如\n),则该m选项无效。
x $regex除非转义或包含在字符类中,否则“扩展”功能可忽略模式中的所有空格字符。 此外,它会忽略中间的字符,包括未转义的hash / pound(#)字符和下一个新行,以便您可以在复杂模式中包含注释。这仅适用于数据字符; 空格字符可能永远不会出现在模式中的特殊字符序列中。 该x选项不影响VT字符的处理(即代码11)。 需要$regex与$options语法
s 允许点字符(即.)匹配包括换行符在内的所有字符。有关示例,请参阅使用。点匹配新线。 需要$regex与$options语法

注意:不能在$regex里面使用运算符表达式 $in;
还有:如果模糊查询的字段存在索引的话,查询速度会更快。
更多内容可以查阅MongoDB的官方文档,点击查看

了解更多MongoDB聚合管道内容可点击:https://gitbook.cn/gitchat/activity/5c1b74ac52d99437c2b822e9

点此欢迎光临我的个人网站【一几文星球】

微信公众号,欢迎关注,一起学习。
在这里插入图片描述

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139141.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • UOS命令_uos手动安装教程

    UOS命令_uos手动安装教程其他Linux发行版中用习惯了ll命令,在UOS中居然木有提供,其实ll命令就是ls-alF命令的一个别名,加到.bashrc里面就行了$vim~/.bashrc#在文件末尾追加下面内容aliasll=’ls-alF’$source~/.bashrc$ll

    2022年9月2日
    3
  • hdu2094「建议收藏」

    hdu2094「建议收藏」hdu2094

    2022年4月22日
    50
  • stat函数的用法_Str函数

    stat函数的用法_Str函数stat和lstat是兄弟函数,都是用于获取文件信息如果文件不是链接文件,则二者没有区别,如果是链接文件有如下区别:stat:获取链接文件的信息时,具有穿透能力,直接穿越链接文件,获取所被链接文件的信息。lstat:获取链接文件的信息,无穿透能力函数原型intstat(constchar*pathname,structstat*buf);intlstat(constcha…

    2022年8月21日
    5
  • 紫光同创国产FPGA学习之Power Calculator

    紫光同创国产FPGA学习之Power Calculator紫光同创里面的,芯片功耗计算。没看过,没用过。有兴趣瞄一下。我又不用再电池行业,对电源没啥要求。没用经验之谈,拷贝参考书。一、总体介绍  (一)PangoPowerCalculator总体介绍PangoPowerCalculator是用来计算用户设计产生功耗的软件,简称PPC,是集成在PDS中的一个组件。用户在完成design设计,经过综合、map、布局布线后,可以使用P…

    2022年8月30日
    2
  • linux常用命令杀死进程_kill杀死进程命令

    linux常用命令杀死进程_kill杀死进程命令在做项目的时候经常会出现程序死机、锁死、无响应等情况,这时候就需要找到程序相应的进程将其杀掉即可。步骤如下:1.定位进程top命令:可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。输入top后可以看到如下的界面,实时显示进程情况。ps命令:processstatus的简称,用于报告当…

    2022年4月19日
    235
  • 纯净的系统重装工具(使用小白一键重装系统之后的系统)

    重装系统教程入门IT第一步,来一个干净的电脑系统吧?(装机需谨慎,系统盘必须格式化,其他风险自测。)本教程提供两种重装系统方式,两种均为纯净装机,均需要U盘。1、PE重装,此方式会为装机者提供更多工具,包括分区大师,电脑密码破解等等工具。2、ISO重装,此方法傻瓜式操作,简单快捷,一键重装。PE重装工具:1、8G以上U盘2、微PE工具:连接:https://pan.baidu…

    2022年4月14日
    120

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号