在 MongoDB 中,我们使用 find 查询记录时,如果要查询文档中所有的字段为特定类型的记录,我们可以使用 $type
运算符。
db_name.collection_name.find({field:{$type:val}})
参数 | 描述 |
---|---|
db_name | 数据库名 |
collection_name | 集合名 |
field | 要查询的字段 |
val | field 字段的类型 |
使用 type 查询记录中所有的 field 的类型为 val 的记录。
类型 | 数字 | 备注 |
---|---|---|
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
如下图所示:
现在,我们使用 use 命令,切换到 haicoder 数据库,具体命令如下:
use haicoder
现在,我们使用 insertMany 插入三条记录,具体命令如下:
db.haicoder.insertMany([{"name":"haicoder", "url":"haicoder.net"}, {"name":"mhaicoder", "url":"m.haicoder.net"}, {"name":"notfound", "url":404}])
执行完毕后,此时,如下图所示:
我们看到,此时提示我们成功插入了三条记录,现在,我们使用 find 进行查询,查询 url 字段类型为字符串的所有记录,具体命令如下:
db.haicoder.find({"url":{$type:"string"}}, {_id:0})
执行完毕后,此时,如下图所示:
我们看到,此时我们查询了 url 字段为字符串的所有的记录,现在我们再次查询 url 为数字的记录,具体命令如下:
db.haicoder.find({"url":{$type:1}}, {_id:0})
执行完毕后,此时,如下图所示:
我们看到,我们查询了 url 字段为数字的所有记录。
在 MongoDB 中,我们使用 find 查询记录时,如果要查询文档中所有的字段为特定类型的记录,我们可以使用 $type
运算符。