在 MongoDB 中,我们在使用 find 查询记录时,我们如果需要模糊匹配,而不是精确匹配,我们可以使用 mongoDB 提供的正则表达式功能。
MongoDB 中的正则表达式,使用的是 $regex
,同时,在使用正则表达式时,我们还可以通过参数达到忽略大小写的功能。
db_name.collection_name.find({ <field>: { $regex: pattern, $options: '<options>' } });
参数 | 描述 |
---|---|
db_name | 数据库名 |
collection_name | 集合名 |
field | 要查询的字段 |
pattern | 正则表达式模式 |
options | 选项 |
在 pattern 里面写入正则表达式即可。
db_name.collection_name.find({filed:/pattern/});
参数 | 描述 |
---|---|
db_name | 数据库名 |
collection_name | 集合名 |
field | 要查询的字段 |
pattern | 正则表达式模式 |
我们还可以直接使用 //
来实现正则表达式查询。
我们首先,使用 mongo 命令,连接上数据库,具体命令如下:
mongo
如下图所示:
现在,我们使用 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"}])
执行完毕后,此时,如下图所示:
我们看到,此时提示我们成功插入了三条记录,现在,我们使用 find 进行模糊查询,具体命令如下:
db.haicoder.find({"url":{$regex:"haicoder"}}, {_id:0})
执行完毕后,此时,如下图所示:
我们看到,此时返回了所有 url 能匹配 haicoder 的所有的记录,同时,我们还可以简写正则表达式,具体命令如下:
db.haicoder.find({"name":/oder/}, {_id:0})
执行完毕后,此时,如下图所示:
我们看到,同样实现了正则表达式查询。
在 MongoDB 中,我们在使用 find 查询记录时,我们如果需要模糊匹配,而不是精确匹配,我们可以使用 mongoDB 提供的正则表达式功能。
MongoDB 中的正则表达式,使用的是 $regex
,同时,在使用正则表达式时,我们还可以通过参数达到忽略大小写的功能。