MongoDB数组模糊查询

MongoDB数组模糊查询

MongoDB 中,我们在使用 find 查询记录的数组字段时,我们还可以使用正则表达式进行模糊匹配。

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

如下图所示:

62_mongodb数组模糊查询.png

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

use haicoder

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

db.haicoder.insertMany([{"url":"haicoder.net", "course":["Python", "Mysql", "MongoDB"]}, {"url":"haicoder", "course":["Java", "Cpp", "Python"]}, {"url":"m.haicoder.net", "course":["Golang", "MongoDB", "Mysql"]}])

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

63_mongodb数组模糊查询.png

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

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

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

64_mongodb数组模糊查询.png

我们看到,此时查到了 course 的字段能够匹配 My 的所有记录,我们再次使用如下命令,同样进行正则匹配对数组进行模糊查询,具体命令如下:

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

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

65_mongodb数组模糊查询.png

我们看到,同样实现了对数组进行模糊查询。

MongoDB数组模糊查询总结

在 MongoDB 中,我们在使用 find 查询记录的数组字段时,我们还可以使用正则表达式进行模糊匹配。