mongodb - Golang/mgo : How can I store Date (not ISODate) in mongodb?

标签 mongodb go mgo isodate

如果我像这样存储当前时间:

type Test struct {
    Id string `bson:"id" json:"id,omitempty"`
    TestTime time.Time `bson:"testTime" json:"testTime,omitempty"`
}
...

t := Test {
    Id : "TEST0001",
    TestTime : time.Now(),
}
...

c.Insert(t)

然后我使用 mongochef 来搜索它:

{ 
    "_id" : ObjectId("576bc7a48114a14b47920d60"), 
    "id" : "TEST0001", 
    "testTime" : ISODate("2016-06-23T11:27:30.447+0000")
}

那么,mgo默认存储ISODate,我如何存储Date而不是ISODate?

最佳答案

mgo 自动将 time.Time 转换为 Mongo 内部日期数据类型( source ,实际上它只是一个没有时区信息的时间戳,并且总是更正为 UTC)。任何其他功能都必须由您手动实现。

您可以通过实现 Getter 强制 mgo 正确(反)序列化您的类型。和 Setter mgo/bson 包中的接口(interface)认为它相当低级,所以要小心。

关于mongodb - Golang/mgo : How can I store Date (not ISODate) in mongodb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37990507/

相关文章:

java - 使用 Java (HttpURLConnection) 向 Restheart 进行身份验证(对于 Mongodb)

go - 如何检查 slice 是否在 Go 中具有给定索引?

mongodb - 使用 mgo 按 id 查找

javascript - 使用 Mongoose 获取新嵌入的文档

python - 使用 pymongo,如何找到所有文档,使得每个文档中的嵌入列表包含大于 X 个元素?

去网/http请求

concurrency - D 中有等价的 goroutines 吗?

mongodb - 监视 MongoDB 更改流

MongoDB $ifNull 条件与 mgo

javascript - 为什么我的 Node Express 应用程序无法从 Mongoose 获取数据?