为了账号安全,请及时绑定邮箱和手机立即绑定

如何将mongodb go驱动的primitive.Timestamp类型转换回

如何将mongodb go驱动的primitive.Timestamp类型转换回

Go
吃鸡游戏 2022-07-11 14:43:55
mongo 的 go 驱动程序返回一个 bson 时间戳,因为https://godoc.org/go.mongodb.org/mongo-driver/bson/primitive#Timestamp 有没有办法将其转换为time.Time
查看完整描述

2 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

https://docs.mongodb.com/manual/reference/bson-types/#timestamps

在 mongodb 官网可以看到,BSON Timestamps 包含两个值,'T' for the seconds since Unix epoch'I' for an incrementing ordinal for operations within a given second.

因此,如果您想将 bson 时间戳转换为 time.Time,您可以使用time.Unix(timestamp.T, 0)


查看完整回答
反对 回复 2022-07-11
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

类似地将当前 time.Time 转换为原始.Timestamp 类型,我们可以使用

primitive.Timestamp{T: uint32(time.Now().Unix()), I: 0}

在 mongo 对象建模中使用primitive.Timestamp会导致 mongo 集合中的Timestamp(1639732596, 0)数据类型。当编码为 json 时,它会产生如下对象:

{“T”:1639732596,“我”:0}

在大多数用例中,对对象模型使用time.Time类型就足够了。这将导致 mongo 集合中的ISODate("2021-12-17T09:14:33.608Z")数据类型。当编码为 json 时,会产生如下字符串:

“2021-12-17T09:14:33.608Z”


查看完整回答
反对 回复 2022-07-11
  • 2 回答
  • 0 关注
  • 100 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信