MongoDB $type 操作符


描述

在本章节中,我们将继续讨论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
}
>