You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Golang读取MongoDB文档时Member的ObjectID解码为000000问题求助

问题原因与解决方案

你的问题出在Member结构体的ID字段bson标签配置错误。从文档结构来看,数组中每个Member对象的ID字段在MongoDB里存储的键是id,但你的结构体给ID字段指定的bson标签是_id,导致解码时无法匹配对应字段,最终解析为空的ObjectID(显示为000000)。而Quiz自身的ID能正常解析,是因为它对应的数据库字段确实是_id,标签配置正确。

修正后的代码

修改Member结构体的ID字段bson标签:

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"` // 将bson标签从"_id"改为"id"
}

额外检查点

  • 确认MongoDB中members数组内的每个对象ID字段键确实是id(而非_id),若后续数据库结构变更,需同步调整结构体标签。
  • 排查MongoDB Go驱动版本是否存在兼容性问题,若之前代码正常现在失效,版本更新可能导致解析逻辑变化,但核心原因仍是标签不匹配。

内容的提问来源于stack exchange,提问作者Ilay Bokobza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 12:10:02