描述
在本章节中,我们将继续讨论MongoDB中条件操作符 $type。
$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。
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 |
使用上一节添加的数据,使用find()命令查看数据:
> db.col.find().pretty()
{
"_id" : ObjectId("62c03e288c761b9926dce925"),
"title" : "PHP 教程",
"description" : "PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。",
"by" : "runoops自学教程",
"url" : "http://www.runoops.com",
"tags" : [
"php"
],
"likes" : 300
}
{
"_id" : ObjectId("62c03eb58c761b9926dce927"),
"title" : "Java 教程",
"description" : "Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。",
"by" : "runoops自学教程",
"url" : "http://www.runoops.com",
"tags" : [
"java"
],
"likes" : 250
}
{
"_id" : ObjectId("62c03ebc8c761b9926dce928"),
"title" : "MongoDB 教程",
"description" : "MongoDB 是一个 Nosql 数据库",
"by" : "runoops自学教程",
"url" : "http://www.runoops.com",
"tags" : [
"mongodb"
],
"likes" : 100
}
>
MongoDB 操作符 - $type 实例
如果想获取 "col" 集合中 title 为 String 的数据,你可以使用以下命令:
db.col.find({"title" : {$type : 2}})
或
db.col.find({"title" : {$type : 'string'}})
输出结果:
> db.col.find({"title" : {$type : 'string'}}).pretty()
{
"_id" : ObjectId("62c03e288c761b9926dce925"),
"title" : "PHP 教程",
"description" : "PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。",
"by" : "runoops自学教程",
"url" : "http://www.runoops.com",
"tags" : [
"php"
],
"likes" : 300
}
{
"_id" : ObjectId("62c03eb58c761b9926dce927"),
"title" : "Java 教程",
"description" : "Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。",
"by" : "runoops自学教程",
"url" : "http://www.runoops.com",
"tags" : [
"java"
],
"likes" : 250
}
{
"_id" : ObjectId("62c03ebc8c761b9926dce928"),
"title" : "MongoDB 教程",
"description" : "MongoDB 是一个 Nosql 数据库",
"by" : "runoops自学教程",
"url" : "http://www.runoops.com",
"tags" : [
"mongodb"
],
"likes" : 100
}
>