MongoDB $convert 运算符介绍

$convert 是 MongoDB 中的一个聚合管道运算符,用于将一个数据类型转换为另一个数据类型。转换类型包括数字类型、日期类型、字符串类型等。

语法

$convert 运算符的语法如下:

{ $convert: { input: <expression>, to: <type>, onError: <expression>, onNull: <expression> } }

其中,input 参数表示要转换的值;to 参数表示要转换的目标类型,可以为以下类型之一:doublestringobjectIdbooldateintlongonErroronNull 参数是可选参数,分别表示在转换过程中遇到错误或输入为 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 中一个非常实用的聚合管道运算符,可以对数据进行类型转换,方便数据的处理和分析。