Mongodb正则$regex

正则能帮助我们实现一些复杂的查询,mongodb中实现正也很简单

https://docs.mongodb.com/manual/reference/operator/query/regex/index.html

查询格式

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

options可选值

i:不区分大小写

m:如果字符串中包含\n,m会将\n后面的字符也当成一行处理,这对一个字符串中存在多行的情况比较有用

x:忽略字符串中的注释和换行(注释以#开头)?

s:允许点匹配所有字符?

命令行操作

测试数据

> db.user_info.insertMany([{"name":"liuqingyun"},{"name":"jeams bean"},{"name":"liuqing"},{"name":"Doc veren"},{"name":"doc jan"},{"name":"yuhuanhuan"},{"name":"liu #ming \n ming"},{"name":"doc liu"},{"name":"DOC jeson"}])

1、查询name以包含liu和yu名称

db.user_info.find({"name":{"$in":[/liu/,/yu/]}})
> db.user_info.find({"name":{"$in":[/liu/,/yu/]}})
{ "_id" : ObjectId("5ec101d873e561131511bf15"), "name" : "liuqingyun" }
{ "_id" : ObjectId("5ec101d873e561131511bf17"), "name" : "liuqing" }
{ "_id" : ObjectId("5ec101d873e561131511bf1a"), "name" : "yuhuanhuan" }
{ "_id" : ObjectId("5ec101d873e561131511bf1b"), "name" : "liu #ming \n ming" }
{ "_id" : ObjectId("5ec101d873e561131511bf1c"), "name" : "doc liu" }
View Code

相关文章: