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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java项目毕业设计:基于springboot+vue的电影视频网站系统「建议收藏」

    Java项目毕业设计:基于springboot+vue的电影视频网站系统「建议收藏」运行环境:开发工具:IDEA/Eclipse数据库:MYSQL5.7应用服务:Tomcat7/Tomcat8使用框架springboot+vue项目介绍影城管理系统的主要使用者分为管理员和用户,实现功能包括管理员:首页、个人中心、用户管理、电影类型管理、放映厅管理、电影信息管理、购票统计管理、系统管理、订单管理,用户前台:首页、电影信息、电影资讯、个人中心、后台管理、在线客服等功能。由于本网站的功能模块设计比较全面,所以使得整个影城管理系统信息管理的过程得以实现。效果图控制器类

    2022年8月22日
    7
  • 基于Spring Cloud项目实战

    (2018年10月2日,从git上移到这里)通过案例学习了基于Springcloud进行web微服务项目的开发,干货很多。Springcloud体系提供了完整的微服务开发的解决方案,整合了多个优秀组件,能够很好的帮助我们提高开发效率。在此做以下总结。SpringCloud简介SpringCloud是一个基于SpringBoot实现的微服务架构开发工具。它…

    2022年4月6日
    68
  • discuz!

    discuz!

    2021年10月8日
    68
  • golang2021.7.20激活码_在线激活

    (golang2021.7.20激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlMLZPB5EL5Q-eyJsa…

    2022年3月21日
    112
  • linux0.11_linux常用命令

    linux0.11_linux常用命令前言所有的UnixLike系统都会内建vi文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是vim编辑器。vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的

    2022年7月29日
    5
  • Java HashSet的实现原理详解

    Java HashSet的实现原理详解HashSet是JavaMap类型的集合类中最常使用的,本文基于Java1.8,对于HashSet的实现原理做一下详细讲解。(Java1.8源码:http://docs.oracle.com/javase/8/docs/api/)一、HashSet实现原理总结HashSet的实现原理总结如下:①是基于HashMap实现的,默认构造函

    2025年7月3日
    2

发表回复

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

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