使用 Go 传递 BSON 文档
使用 mgo 包使用 Go 和 MongoDB 时,在传递 BSON 文档时通常会遇到挑战。本文解决了一个这样的问题,特别关注 BSON 文档是否使用 interface{} 的问题。
问题:
您已经创建了一个 BSON文档,但当尝试将其传递给另一个采用 interface{} 类型的包中的函数时,您会遇到错误:“panic: Can't marshal interface {} as a BSON document.”
解决方案:
您的问题源于您不应该自己创建 BSON 文档。相反,您可以定义一个结构体来表示文档的架构,然后使用 mgo 包来处理 BSON 数据的编组和解组。
在 account.go 中:
定义代表您帐户的结构体:
在 dbEngine.go 中:
更新 Insert 函数以接受 interface{} 参数:
在您的主应用程序中:
创建 Account 结构的实例并将其插入数据库:
此方法允许mgo 正确处理 BSON 文档的编码和解码,无需手动处理。
以上是我应该在 Go 中为 BSON 文档使用“interface{}”吗?的详细内容。更多信息请关注PHP中文网其他相关文章!