MongoDB将BsonTimestamp转换为日期

qacovj5a  于 2023-03-01  发布在  Go
关注(0)|答案(1)|浏览(167)

bounty将在6天后过期。回答此问题可获得+100声望奖励。antpaw希望引起更多人关注此问题。

有没有一种(有效的)方法可以将MongoDB文档中BsonTimestamp类型的字段转换为Date类型的字段?我是否需要创建一个临时字段来存储Date?我是否需要编写一个自定义的JS迁移脚本并循环遍历其中的每一项?
从这里:

"ts": {
    "$timestamp": {
      "t": 1620986905,
      "i": 1
    }
  }

改为:

"ts": {
    "$date": {
      "$numberLong": "1620986905626"
    }
  }
blmhpbnm

blmhpbnm1#

正如官方文件所述,
BSON时间戳类型是供MongoDB内部使用的。在大多数情况下,在应用程序开发中,您将希望使用BSON日期类型。请参阅Date了解更多信息。
对于您的情况,建议您使用普通bson日期字段。您可以使用$toDate转换现有数据

db.collection.update({},
[
  {
    $set: {
      ts: {
        $toDate: "$ts"
      }
    }
  }
],
{
  multi: true
})

Mongo Playground

相关问题