如何使用 Golang 的 Mgo 避免空对象
当使用 Golang 的 mgo 包与 MongoDB 交互时,了解正确的用法至关重要BSON 和 JSON 标签。如果不使用适当的标签注释,数据检索可能会导致空对象。
提供的代码片段尝试在 MongoDB 中查询具有特定“用户”字段的记录。但是,由于常见的疏忽,返回的记录为空:结构字段未导出。要解决此问题,请修改 users 结构体以导出用户和数据字段:
type users struct { User string `bson:"user" json:"user"` Data string `bson:"data" json:"data"` }
通过导出结构体字段,您可以指示 mgo 包在数据转换和检索期间使用这些字段名称。如果没有此导出,包将忽略这些字段。
此外,了解 BSON 和 JSON 标签的作用也很重要。在 MongoDB 中,数据以 BSON(二进制 JSON)格式存储。然而,Go 使用 JSON 来表示数据结构。 BSON 和 JSON 标签允许您指定 Go 字段如何映射到相应的 BSON 对应项。
在提供的代码中,User 和 Data 标签指定 Go 结构体字段应映射到“user”和分别是 BSON 中的“数据”字段。通过使用这些标签,您可以确保以正确的格式存储和检索数据。
通过遵循这些准则,您可以有效地避免检索空对象,并确保使用 mgo 在 Go 和 MongoDB 之间正确处理数据包裹。
以上是为什么我的 Golang mgo 查询返回空对象?的详细内容。更多信息请关注PHP中文网其他相关文章!