在 MongoDB 中,我们在使用 find 查询记录时,配合时候正则表达式 $regex
时,我们还可以通过参数 $i
达到忽略大小写的功能。
db_name.collection_name.find({ <field>: { $regex: pattern, $options: '$i' } });
参数 | 描述 |
---|---|
db_name | 数据库名 |
collection_name | 集合名 |
field | 要查询的字段 |
pattern | 正则表达式模式 |
options | 选项,使用 i 可以达到忽略大小写的目的 |
在 pattern 里面写入 i 可以达到忽略大小写的目的。
db_name.collection_name.find({filed:/pattern/i});
参数 | 描述 |
---|---|
db_name | 数据库名 |
collection_name | 集合名 |
field | 要查询的字段 |
pattern | 正则表达式模式 |
我们还可以直接使用 //i
来实现正则表达式查询且忽略大小写。
db_name.collection_name.find({filed:{$regex:/^xiao$/i}});
我们使用 /^
和 $
来实现正则表达式精准匹配且忽略大小写。
我们首先,使用 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({"name":{$regex:"haicoder"}}, {_id:0})
执行完毕后,此时,如下图所示:
我们看到,此时仅仅查到了 name 匹配 haicoder 的记录,但没有忽略大小写,现在,我们使用 $i
参数,实现忽略大小写,具体命令如下:
db.haicoder.find({"name":{$regex:"haicoder", "$options":"$i"}}, {_id:0})
执行完毕后,此时,如下图所示:
我们看到,我们实现了忽略大小写的匹配,同时,我们还可以简写成如下形式:
db.haicoder.find({"name":/haicoder/i}, {_id:0})
执行完毕后,此时,如下图所示:
我们看到,同样实现了忽略大小写匹配。
在 MongoDB 中,我们在使用 find 查询记录时,配合时候正则表达式 $regex
时,我们还可以通过参数 $i
达到忽略大小写的功能。