MongoDB 如何动态设置文档中的字段

问题描述 投票:0回答:1

你好,在我的程序中,我需要存储用户消息,我希望文档中的消息以以下方式存储,以便消息的时间是文档中字段的名称,以及文档中的文本message 是该字段的值: 文件1: timeOfMsg: 消息文本 timeOfNextMsg: 消息文本 ...

我有一个结构:

type MsgStr struct {
    Id   string    `bson:"_id,omitempty"`
    Time time.Time `bson:"time,omitempty"`
    Data string    `bson:"text,omitempty"`
}

所以我需要它将数据结构中的时间值设置为文档中字段的名称,并且一个文档包含多条消息

我知道如何在没有结构的情况下做到这一点:

insertResult, err := podcastsCollection.InsertOne(ctx, bson.D{{msg.time.String(), msg.Data}})

但是我将为每条消息都有一个文档,并且我需要将所有用户的消息放在一个文档中

mongodb go
1个回答
0
投票

InsertOne
返回插入文档的ID,用它来添加带有更新的新消息:

insertResult, err := podcastsCollection.InsertOne(ctx, bson.D{
    {msg.time.String(), msg.Data},
})

podcastsCollection.Update(
    {"_id": insertResult.InsertedID},
    {$set: {newMsg.time.String(), newMsg.Data}})
© www.soinside.com 2019 - 2024. All rights reserved.