首页 > 后端开发 > Golang > 我应该在 Go 中为 BSON 文档使用'interface{}”吗?

我应该在 Go 中为 BSON 文档使用'interface{}”吗?

Barbara Streisand
发布: 2024-11-17 15:12:01
原创
686 人浏览过

Should I Use `interface{}` for BSON Documents in Go?

使用 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板