赞
踩
正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。
许多程序设计语言都支持利用正则表达式进行字符串操作。
MongoDB 使用 $regex 操作符来设置匹配字符串的正则表达式。
MongoDB使用PCRE (Perl Compatible Regular Expression) 作为正则表达式语言。
不同于全文检索,咱们使用正则表达式不需要做任何配置。
考虑以下 posts 集合的文档结构,该文档包含了文章内容和标签:
{
"post_text": "enjoy the mongodb articles on liulianjiangcsdn",
"tags": [
"mongodb",
"liulianjiangcsdn"
]
}
以下命令使用正则表达式查找包含 liulianjiangcsdn 字符串的文章:
>db.posts.find({post_text:{$regex:"liulianjiangcsdn"}})
以上查询也可以写为:
>db.posts.find({post_text:/liulianjiangcsdn/})
如果检索需要不区分大小写,咱们可以设置 $options 为 $i。
以下命令将查找不区分大小写的字符串 liulianjiangcsdn:
>db.posts.find({post_text:{$regex:"liulianjiangcsdn",$options:"$i"}})
集合中会return 所有包含字符串 liulianjiangcsdn 的数据,且不区分大小写:
{
"_id" : ObjectId("53493d37d852429c10000004"),
"post_text" : "hey! this is my post on liulianjiangcsdn",
"tags" : [ "liulianjiangcsdn" ]
}
咱们还可以在数组字段中使用正则表达式来查找内容。 这在标签的实现上非常有用,如果帅哥需要查找包含以 run 开头的标签数据(ru 或 run 或 liulianjiangcsdn), 帅哥可以使用以下代码:
>db.posts.find({tags:{$regex:"run"}})
这里面使用正则表达式有两点需要注意:
正则表达式中使用变量。一定要使用eval将组合的字符串进行转换,不能直接将字符串拼接后传入给表达式。否则没有报错信息,只是结果为空!实例如下:
var name=eval("/" + 变量值key +"/i");
以下是模糊查询包含title关键词, 且不区分大小写:
title:eval("/"+title+"/i") // 等同于 title:{$regex:title,$Option:"$i"}
第1章 MongoDB 教程 | 第2章 NoSQL 简介教程 |
---|---|
第3章 MongoDB 简介教程 | 第4章 Windows MongoDB教程 |
第5章 Linux MongoDB教程 | 第6章 OSX MongoDB教程 |
第7章 MongoDB 概念解析教程 | 第8章 MongoDB 连接教程 |
第9章 MongoDB 创建数据库教程 | 第10章 MongoDB 删除数据库教程 |
第11章 MongoDB 创建集合教程 | 第12章 MongoDB 删除集合教程 |
第13章 MongoDB 插入文档教程 | 第14章 MongoDB 更新文档教程 |
第15章 MongoDB 删除文档教程 | 第16章 MongoDB 查询文档教程 |
第17章 MongoDB 条件操作符教程 | 第18章 MongoDB $type 操作符教程 |
第19章 MongoDB Limit与Skip方法教程 | 第20章 MongoDB 排序教程 |
第21章 MongoDB 索引教程 | 第22章 MongoDB 聚合教程 |
第23章 MongoDB 复制(副本集)教程 | 第24章 MongoDB 分片教程 |
第25章 MongoDB 备份与恢复教程 | 第26章 MongoDB 监控教程 |
第27章 MongoDB Java教程 | 第28章 MongoDB PHP 扩展教程 |
第29章 MongoDB PHP教程 | 第30章 MongoDB PHP7教程 |
第31章 Node.js MongoDB教程 | 第32章 MongoDB 关系教程 |
第33章 MongoDB 数据库引用教程 | 第34章 MongoDB 覆盖索引查询教程 |
第35章 MongoDB 查询分析教程 | 第36章 MongoDB 原子操作教程 |
第37章 MongoDB 高级索引教程 | 第38章 MongoDB 索引限制教程 |
第39章 MongoDB ObjectId教程 | 第40章 MongoDB Map Reduce教程 |
第41章 MongoDB 全文检索教程 | 第42章 第42章 MongoDB 正则表达式教程教程 |
第43章 MongoDB 管理工具教程 | 第44章 MongoDB GridFS教程 |
第45章 MongoDB 固定集合教程 | 第46章 MongoDB 自动增长教程 |
本文有榴莲酱CSDN原创,欢迎点赞、转载,博客地址:https://blog.csdn.net/qq441540598
- 有些事,你把它藏到心里,也许还更好,等时间长了,也就变成了故事。人生最糟的不是失去爱的人,而是因为太爱一个人,而失去了自己。那些花了好久才想明白的事,最終会被一次情緒失控全部推翻。有些人一旦有事,喜欢为自己找理由求心安,有些人则爱分析。无论前者后者都是种生活态度、
- 学无早晚,但恐始勤终随。作者:(宋)张孝祥
- 一本书不管从哪页看起,5分钟后还不能吸引你,请毫不犹豫地扔掉它。
- 世界上没有等出来的辉煌;只有走出来的美丽。
- 享有特权但是没有力量的人就是废物,受过教育而又没有什么影响的人则是一堆一文不值的垃圾。有那么一些人,在知识道德和宗教信仰方面受过教养,最后却没有成为在社会上行善事的积极的力量。这样一些人就对不起哪些培育和供养他们所花费的代价。如果他们也算是基督徒的话,他们就犯了因伪装而赢得尊敬的罪过。他们本来应该成为世上的盐的,但是盐的首要的责任就应该是有盐味。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。