MongoDB $convert 运算符介绍
$convert
是 MongoDB 中的一个聚合管道运算符,用于将一个数据类型转换为另一个数据类型。转换类型包括数字类型、日期类型、字符串类型等。
语法
$convert
运算符的语法如下:
{ $convert: { input: <expression>, to: <type>, onError: <expression>, onNull: <expression> } }
其中,input
参数表示要转换的值;to
参数表示要转换的目标类型,可以为以下类型之一:double
、string
、objectId
、bool
、date
、int
、long
;onError
和 onNull
参数是可选参数,分别表示在转换过程中遇到错误或输入为 null 时返回的值。
使用场景
$convert
运算符通常用于聚合管道中,可以对数据进行类型转换,以满足业务需求。比如,对于日期类型的数据,可以使用 $convert
将其转换为字符串类型,方便数据的输出和处理。
示例
假设有如下的文档集合 students
:
{ "_id" : 1, "name" : "Tom", "age" : "22" }
{ "_id" : 2, "name" : "Jerry", "age" : "23" }
{ "_id" : 3, "name" : "Bob", "age" : "25" }
{ "_id" : 4, "name" : "Alice", "age" : "21" }
其中,age
字段为字符串类型,我们需要将其转换为数字类型。
可以使用如下的聚合管道进行转换:
db.students.aggregate([
{ $project: { name: 1, age: { $convert: { input: "$age", to: "int" } } } }
])
运行结果如下:
{ "_id" : 1, "name" : "Tom", "age" : 22 }
{ "_id" : 2, "name" : "Jerry", "age" : 23 }
{ "_id" : 3, "name" : "Bob", "age" : 25 }
{ "_id" : 4, "name" : "Alice", "age" : 21 }
可以看到,age
字段已经被成功转换为数字类型。
结论
$convert
运算符是 MongoDB 中一个非常实用的聚合管道运算符,可以对数据进行类型转换,方便数据的处理和分析。