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

mongo 的 go 驱动程序返回一个 bson 时间戳,因为https://godoc.org/go.mongodb.org/mongo-driver/bson/primitive#Timestamp 有没有办法将其转换为time.Time



吃鸡游戏
浏览 101回答 2
2回答

Cats萌萌

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)

米琪卡哇伊

类似地将当前 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”
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go