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)
米琪卡哇伊
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”
- 2 回答
- 0 关注
- 100 浏览
添加回答
举报
0/150
提交
取消