数据类型转换操作符

?> MongoDB 对于文档的格式并没有强制性的要求, 同一个集合中存储的文档, 字段的个数和数据类型都可以不同, 对与文档的格式没有强制性的要求是 MongoDB 的一大优势, 但是同时也增加了数据消费端的使用难度, 因为我们在使用数据的时候, 有可能同一个字段取出来的数据类型是不同的, 这样非常不利于我们后续操作, 所以也正是因为如此, MongoDB 在 ​​4.0​​​ 中 推出了 ​​$convert​​ 数据类型转换操作符, 通过 $convert 数据类型转换操作符, 我们可以将不同的数据类型转换成相同的数据类型, 以便于后续我们在使用数据的过程中能够统一对数据进行处理

$convert 格式

{$convert:{
input: '需要转换的字段',
to: '转换之后的数据类型',
onError: '不支持的转换类型',
onNull: '没有需要转换的数据'
}}

示例

  • 添加测试数据
db.person.insert([
{name:'zs', timestamp:ISODate('2020-08-09T11:23:34.733Z')},
{name:'ls', timestamp:'2021-02-14 12:00:06 +0800 '},
{name:'ww', timestamp:' 2023-04-01T12:00:00Z'},
{name:'zl', timestamp:'1587009270000'},
{name:'BNTang', timestamp:'Sunday'},
{name:'XiaoHuihui'},
])
  • 运用
db.person.aggregate([
{$project:{
_id:0,
timestamp:{
$convert:{
input:'$timestamp',
to:'date',
onError: '不支持的转换类型',
onNull: '没有需要转换的数据'
}
}
}}
])