mongodb 正则
正则表达式常用来在所有语言中搜索字符串的任何模式或文字。MongoDB还提供了正则表达式功能的字符串模式使用正则表达式$regex操作符。MongoDB使用PCRE(Perl兼容正则表达式)为正则表达式语言。
不同于文本搜索,我们不需要做任何配置或命令就能直接使用正则表达式。
考虑下包含文字后其标签的帖子集合,文档结构如以下:
{"post_text": "enjoy the mongodb articles on yiibai", "tags": [ "mongodb", "yiibai" ] }
使用正则表达式表达
下面的正则表达式查询搜索所有包含字符串 yiibai.com 的帖子:
>db.posts.find({post_text:{$regex:"yiibai.com"}})
同样的查询也可以写为:
>db.posts.find({post_text:/yiibai.com/})
使用正则表达式不区分大小写
为了使搜索不区分大小写,我们使用$options 带有值参数 $i。下面的命令会搜索字符串:yiibai.com,不论大小写:
>db.posts.find({post_text:{$regex:"yiibai",$options:"$i"}})
该查询重新调整的结果是:其中在大小下包含词语 yiibai 文档,如以下:
{"_id" : ObjectId("53493d37d852429c10000004"), "post_text" : "hey! this is my post on Yiibai", "tags" : [ "yiibai" ] }
使用正则表达式的数组元素:
我们还可以使用数组字段正则表达式概念。 这时候我们实现标签的功能显得尤为重要。 所以,如果想要搜索带有标签以词组tutorial开始所有的帖子(无论是tutorial或tutorials或tutorialjava或tutorialphp),都可以使用下面的代码:
>db.posts.find({tags:{$regex:"tutorial"}})
>db.posts.find({tags:{$regex:"^tutorial"}})以tutorial开头
>db.posts.find({tags:{$regex:"tutorial$"}})以tutorial结尾
优化正则表达式查询:
- 如果文档字段已被索引,查询将使用使用索引值的匹配正则表达式。 这使得搜索非常快,正则表达式相对于扫描整个集合。
- 如果正则表达式是一个前缀表达式,所有的匹配是以某一串字符开始。例如,如果正则表达式 ^tut, 查询有只搜索那些开始串 tut.
转载于:https://www.cnblogs.com/wangjing666/p/6844452.html
mongodb 正则相关推荐
- MongoDB正则查询操作
插入一条数据: {"_id" : ObjectId("61a83d5502bb260d1cec4e46"),"money" : 666,&q ...
- mongodb文档操作
增 #1.没有指定_id则默认ObjectId,_id不能重复,且在插入后不可变#2.插入单条 user0={"name":"egon","age&q ...
- Mongodb 基本操作
mongo简介 1.基于分布式文件存储的数据库. 为 WEB应用提供可扩展的高性能数据存储解决方案. 2.Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言, 几乎可 ...
- 数据库——MongoDB增删改查
MongoDB增删改查操作 本文包含对数据库.集合以及文档的基本增删改查操作 数据库操作 #1.增 use config #如果数据库不存在,则创建并切换到该数据库,存在则直接切换到指定数据库.#2. ...
- 1月16日学习内容整理:存储库MongoDB之文档的增删改查操作补充
文档操作 一.查 1.比较运算 # SQL:=,!=,>,<,>=,<= # MongoDB:{key:value}代表什么等于什么,"$ne"," ...
- mongoDB安装及使用
一.简介 MongDB是一个面向文档的数据库,是非关系型数据库.此外,它不再有预定义模式(predefined schema):文档的键(key)和值(value)不再是固定的类型和大小. 二.Mon ...
- mongodb----集合而定多种查询方式
易读模式(json格式) db.test.find().pretty() 限制查询条数 db.test.find().limit(3).pretty() 跳过条目(跳过前两条) db.test.fin ...
- mongodb java 多条件查询_MongoDB查询之高级操作详解(多条件查询、正则匹配查询等)...
MongoDB查询之高级操作 语法介绍 MongoDB查询文档使用find()方法,同时find()方法以非结构化的方式来显示所有查询到的文档. -- 1.基本语法 db.collection.fin ...
- MongoDB 数据操作(二)数据查询(10)正则运算
来源:我的博客站 OceanicKang |<MongoDB 数据操作(二)数据查询(10)正则运算> 上一篇:<MongoDB 数据操作(二)数据查询(9)条件过滤> 如果要 ...
- mongodb常用语句以及SpringBoot中使用mongodb
普通查询 某个字段匹配数组内的元素数量的,假如region只有一个元素的 db.getCollection('map').find({region:{$size:1}}) 假如region只有0个元素 ...
最新文章
- lambda expressions are not supported at this language level
- teach-es6-2(class)
- Android深入四大组件(八)广播的注册、发送和接收过程
- 一篇文章理解深度神经网络5个常用激活函数
- 微机原理控制转移类指令
- 使用CoreImage教程
- 佛山高新区构建大数据产业新生态
- TP/TCP/UDP
- MySQL解压缩版配置安装详解【图解】
- Memory stream is not expandable
- pycharm: Error: Cannot run program……
- 基于FFmpeg的iOS播放器(结构篇)
- C++代码实现图片调色
- Python刷题系列(8)_Pandas_Dataframe
- MySQL函数计算24小时平均浓度对应的IAQI和AQI
- 针对《面试心得与总结—BAT、网易、蘑菇街》一文中出现的技术问题的收集与整理...
- 在元宇宙的概念之下,互联网与数字经济不再是水火不容的存在
- 光纤网卡和HBA卡有什么区别
- 生物信息学技术在罕见病研究中的应用
- 做自媒体影视短视频剪辑号,在哪儿下载素材?