在 Go API 开发领域,使用 MongoDB 和 mgo 包时会出现一个常见的障碍。开发人员经常遇到令人困惑的情况,查询返回空对象,让他们感到困惑。为了阐明这个谜团,让我们深入研究一个示例。
考虑一个场景,您希望使用 mgo 包与 MongoDB 集合进行交互。成功连接到数据库后,您可以执行查询以根据用户名检索用户。然而,令您沮丧的是,返回的对象仍然没有任何数据。
这个谜团的解决方案在于在定义 Go 结构时使用 BSON 和 JSON 标签。本质上,您需要确保导出结构体的字段,否则 mgo 包将忽略它们。要实现此目的,只需在字段前添加大写字母:
type users struct { User string `bson:"user" json:"user"` Data string `bson:"data" json:"data"` }
通过遵循此约定,您明确声明应导出这些字段并可供 mgo 包访问。进行此调整后,后续查询将不再产生空对象,从而允许您从 MongoDB 检索所需的数据。
以上是为什么我的 mgo 查询在 Go 中返回空对象?的详细内容。更多信息请关注PHP中文网其他相关文章!