MongoDB - 正则

MongoDB - 正则 首页 / MongoDB入门教程 / MongoDB - 正则

在所有语言中,经常使用正则表达式来搜索任何字符串中的模式或单词, MongoDB还提供了使用 $regex 运算符进行字符串模式匹配。

与文本搜索不同,无涯教程不需要进行任何配置或命令即可使用正则表达式。

考虑 posts 集合下的以下文档结构,其中包含帖子文本及其标签-

{
   "post_text": "enjoy the mongodb articles on learnfk",
   "tags": [
      "mongodb",
      "learnfk"
   ]
}

使用正则表达式

以下正则表达式查询搜索其中所有包含字符串 learnfk 的帖子-

>db.posts.find({post_text:{$regex:"learnfk"}})

相同的查询也可以写成-

>db.posts.find({post_text:/learnfk/})

不区分大小写

为了使搜索不区分大小写,无涯教程使用值为 $i 的 $options 参数。以下命令将查找具有单词 learnfk 的字符串,而不考虑大小写或小写字母-

>db.posts.find({post_text:{$regex:"learnfk",$options:"$i"}})

该查询返回的输出之一是以下文档,其中包含单词 learnfk 在不同情况下-

无涯教程网

{
   "_id" : ObjectId("53493d37d852429c10000004"),
   "post_text" : "hey! this is my post on LearnFk", 
   "tags" : [ "learnfk" ]
} 
 

数组正则表达式

无涯教程还可以在数组字段上使用正则表达式的概念。如果您要搜索所有带有单词单词回肠荡气(tutorial或tutorialphp)开头的标签的帖子,则可以使用以下代码-

>db.posts.find({tags:{$regex:"tutorial"}})

优化正则查询

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

DDD实战课 -〔欧创新〕

雷蓓蓓的项目管理实战课 -〔雷蓓蓓〕

后端存储实战课 -〔李玥〕

深入浅出云计算 -〔何恺铎〕

系统性能调优必知必会 -〔陶辉〕

容器实战高手课 -〔李程远〕

性能优化高手课 -〔尉刚强〕

超级访谈:对话玉伯 -〔玉伯〕

结构写作力 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)