将数据解码为结构体时,对象 ID 变为 00000。 Golang 和 Mongodb

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

我正在尝试从我的数据库中获取文档。该文档包含成员列表,每个成员都有一个 ObjectID。当我解码文档时,每个成员的 id 变成 000000,而原始文档 id 保持不变。

我在网上查了一下,我不认为我做错了什么,这段代码过去也有效,但现在不再有效。

type Quiz struct {
    Title   string             `json:"title"`
    ID      primitive.ObjectID `json:"id" bson:"_id"`
    Members []Member           `json:"members"`
    Owner   primitive.ObjectID `bson:"owner" json:"-"`
    Open    bool               `json:"open"`
}

type Member struct {
    Name     string             `json:"name"`
    Email    string             `json:"email"`
    Password string             `json:"password"`
    Response Response           `json:"response"`
    ID       primitive.ObjectID `json:"id" bson:"_id"`
}

func Get(ID primitive.ObjectID) (Quiz, error) {
    //creates context
    ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
    defer cancel()

    var q Quiz
    var err = database.DB.Collection("quizes").FindOne(ctx, bson.M{"_id": ID}).Decode(&q)

    if err != nil {
        return *new(Quiz), err
    }
    fmt.Println(q.Members[0].ID) //00000
    fmt.Println(q.Members[1].ID) //00000

    return q, nil
}

以下是文档示例: document

mongodb go web backend
1个回答
0
投票

我也有同样的问题。如果您成功解决了这个问题,请告诉我!

© www.soinside.com 2019 - 2024. All rights reserved.