MongoDB正则匹配

MongoDB正则匹配

MongoDB 中,我们在使用 find 查询记录时,我们如果需要模糊匹配,而不是精确匹配,我们可以使用 mongoDB 提供的正则表达式功能。

MongoDB 中的正则表达式,使用的是 $regex,同时,在使用正则表达式时,我们还可以通过参数达到忽略大小写的功能。

MongoDB模糊查询详解

语法

db_name.collection_name.find({ <field>: { $regex: pattern, $options: '<options>' } });

参数

参数 描述
db_name 数据库名
collection_name 集合名
field 要查询的字段
pattern 正则表达式模式
options 选项

说明

在 pattern 里面写入正则表达式即可。

MongoDB正则表达式查询详解

语法

db_name.collection_name.find({filed:/pattern/});

参数

参数 描述
db_name 数据库名
collection_name 集合名
field 要查询的字段
pattern 正则表达式模式

说明

我们还可以直接使用 // 来实现正则表达式查询。

案例

我们首先,使用 mongo 命令,连接上数据库,具体命令如下:

mongo

如下图所示:

18_mongodb模糊查询.png

现在,我们使用 use 命令,切换到 haicoder 数据库,具体命令如下:

use haicoder

现在,我们使用 insertMany 插入三条记录,具体命令如下:

db.haicoder.insertMany([{"name":"haicoder", "url":"www.haicoder.net"}, {"name":"HaiCoder", "url":"www.haicoder.net"}, {"name":"golang", "url":"https://haicoder.net/golang/golang-tutorial.html"}])

执行完毕后,此时,如下图所示:

19_mongodb模糊查询.png

我们看到,此时提示我们成功插入了三条记录,现在,我们使用 find 进行模糊查询,具体命令如下:

db.haicoder.find({"url":{$regex:"haicoder"}}, {_id:0})

执行完毕后,此时,如下图所示:

20_mongodb模糊查询.png

我们看到,此时返回了所有 url 能匹配 haicoder 的所有的记录,同时,我们还可以简写正则表达式,具体命令如下:

db.haicoder.find({"name":/oder/}, {_id:0})

执行完毕后,此时,如下图所示:

21_mongodb模糊查询.png

我们看到,同样实现了正则表达式查询。

MongoDB模糊查询总结

在 MongoDB 中,我们在使用 find 查询记录时,我们如果需要模糊匹配,而不是精确匹配,我们可以使用 mongoDB 提供的正则表达式功能。

MongoDB 中的正则表达式,使用的是 $regex,同时,在使用正则表达式时,我们还可以通过参数达到忽略大小写的功能。