我正在尝试从我的数据库中获取文档。该文档包含成员列表,每个成员都有一个 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
}
我也有同样的问题。如果您成功解决了这个问题,请告诉我!