MongoDB忽略大小写查询

MongoDB忽略大小写查询

MongoDB 中,我们在使用 find 查询记录时,配合时候正则表达式 $regex 时,我们还可以通过参数 $i 达到忽略大小写的功能。

MongoDB忽略大小写查询详解

语法

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

参数

参数 描述
db_name 数据库名
collection_name 集合名
field 要查询的字段
pattern 正则表达式模式
options 选项,使用 i 可以达到忽略大小写的目的

说明

在 pattern 里面写入 i 可以达到忽略大小写的目的。

MongoDB查询不区分大小写详解

语法

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

参数

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

说明

我们还可以直接使用 //i 来实现正则表达式查询且忽略大小写。

MongoDB精确匹配不区分大小写详解

语法

db_name.collection_name.find({filed:{$regex:/^xiao$/i}});

说明

我们使用 /^$ 来实现正则表达式精准匹配且忽略大小写。

案例

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

mongo

如下图所示:

22_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"}])

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

23_mongodb忽略大小写匹配.png

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

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

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

24_mongodb忽略大小写匹配.png

我们看到,此时仅仅查到了 name 匹配 haicoder 的记录,但没有忽略大小写,现在,我们使用 $i 参数,实现忽略大小写,具体命令如下:

db.haicoder.find({"name":{$regex:"haicoder", "$options":"$i"}}, {_id:0})

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

25_mongodb忽略大小写匹配.png

我们看到,我们实现了忽略大小写的匹配,同时,我们还可以简写成如下形式:

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

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

26_mongodb忽略大小写匹配.png

我们看到,同样实现了忽略大小写匹配。

MongoDB忽略大小写查询总结

在 MongoDB 中,我们在使用 find 查询记录时,配合时候正则表达式 $regex 时,我们还可以通过参数 $i 达到忽略大小写的功能。