数据类型转换操作符
?> 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: '没有需要转换的数据' } } }} ])