MongoDB查询指定字段类型

MongoDB查询指定字段类型

MongoDB 中,我们使用 find 查询记录时,如果要查询文档中所有的字段为特定类型的记录,我们可以使用 $type 运算符。

MongoDB查询指定字段类型详解

语法

db_name.collection_name.find({field:{$type:val}})

参数

参数 描述
db_name 数据库名
collection_name 集合名
field 要查询的字段
val field 字段的类型

说明

使用 type 查询记录中所有的 field 的类型为 val 的记录。

MongoDB数据类型

类型 数字 备注
Double 1
String 2
Object 3
Array 4
Binary data 5
Undefined 6 已废弃。
Object id 7
Boolean 8
Date 9
Null 10
Regular Expression 11
JavaScript 13
Symbol 14
JavaScript (with scope) 15
32-bit integer 16
Timestamp 17
64-bit integer 18
Min key 255 Query with -1.
Max key 127

案例

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

mongo

如下图所示:

104_mongodb type.png

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

use haicoder

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

db.haicoder.insertMany([{"name":"haicoder", "url":"haicoder.net"}, {"name":"mhaicoder", "url":"m.haicoder.net"}, {"name":"notfound", "url":404}])

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

105_mongodb type.png

我们看到,此时提示我们成功插入了三条记录,现在,我们使用 find 进行查询,查询 url 字段类型为字符串的所有记录,具体命令如下:

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

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

106_mongodb type.png

我们看到,此时我们查询了 url 字段为字符串的所有的记录,现在我们再次查询 url 为数字的记录,具体命令如下:

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

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

107_mongodb type.png

我们看到,我们查询了 url 字段为数字的所有记录。

MongoDB查询指定字段类型总结

在 MongoDB 中,我们使用 find 查询记录时,如果要查询文档中所有的字段为特定类型的记录,我们可以使用 $type 运算符。