首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新MongoDB和Golang驱动程序中的时间戳字段

问更新MongoDB和Golang驱动程序中的时间戳字段
EN

Stack Overflow用户
提问于 2019-12-02 18:02:57
回答 1查看 8.4K关注 0票数 4

我正在使用正式的MongoDb驱动程序为Golang。我有一个具有时间戳类型的字段,我想从我的Golang代码中更新它。

这是我的结构(lastUpdate字段是时间戳字段):

代码语言:javascript
复制
import (
    "context"
    "log"
    "time"

    "go.mongodb.org/mongo-driver/bson"
    "go.mongodb.org/mongo-driver/mongo"
    "go.mongodb.org/mongo-driver/mongo/options"
    "go.mongodb.org/mongo-driver/mongo/readpref"
    "go.mongodb.org/mongo-driver/bson/primitive"
)


type MyStruct struct {
    Id primitive.ObjectID  `json:"id" bson:"_id,omitempty"`
    Name   string `json:"name"`
    Alias  string `json:"alias"`
    Signed bool   `json:"signed"`
    Age int   `json:"age"`
    CreatedDate time.Time   `json:"createdDaate"`
    LastUpdate primitive.Timestamp `json:"lastUpdate"`
}

然后我传递这个bson来更新我的数据:

代码语言:javascript
复制
    // logic to update data
    docID, _ := primitive.ObjectIDFromHex("5de30185e4fabe4778f0ffdf")

    UpdateMyData(c, bson.M{"createdDate": time.Now(), "lastUpdate": time.Now().UnixNano() }, bson.M{"_id": docID})

 //update method
func UpdateMyData(client *mongo.Client, updatedData bson.M, filter bson.M) int64 {
    collection := client.Database("*****").Collection("*****")
    atualizacao := bson.D{ {Key: "$set", Value: updatedData} }
    updatedResult, err := collection.UpdateOne(context.TODO(), filter, atualizacao)
    if err != nil {
        log.Fatal("Error on updating one Hero", err)
    }
    return updatedResult.ModifiedCount
}

UpdateMyData方法的内容很好,因为它只接受bson并调用UpdateOne方法将数据更新到数据库中,并正确地处理所有不同的字段。

问题是time.Now().UnixNane()返回int64值,上面的代码不会抛出错误,但是它会将lastUpdated的“类型”更改为my MongoDb数据库中的特定行的Int64!那么,在不改变数据类型的情况下,将数据传递到时间戳字段的正确方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-02 18:12:08

尝试传递一个时间戳而不是int64:

代码语言:javascript
复制
"lastUpdate": primitive.Timestamp{T:uint32(time.Now().Unix())}

注意,mongodb时间戳是unix秒,而不是纳秒。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59144405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档