在 Go Lang 中传递 BSON 文档
在 Go 中,您可以连接到 MongoDB 并使用 mgo 库操作数据。要将文档插入 MongoDB,您需要构造 BSON 文档,它代表您要存储的数据。
将 BSON 文档传递给另一个包中的函数(例如 dbEngine.go)时,您可能会遇到使用interface{}类型时出错。这是因为 mgo 期望特定类型映射到 BSON 文档结构。
建议使用 Go 结构来定义要插入的数据的形状,而不是手动创建 BSON 文档。例如,在 account.go 中,您可以创建一个如下结构:
type Account struct { Id bson.ObjectId `bson:"_id"` BalanceAmount int // Other field }
然后,在 dbEngine.go 中,您可以更新 Insert 函数以接受指向该结构的指针:
func Insert(document interface{}){ session, err := mgo.Dial("localhost") // check error c := session.DB("db_name").C("collection_name") err := c.Insert(document) }
最后,您可以使用结构体创建一个新帐户并将其插入到 MongoDB 中:
acc := Account{} acc.Id = bson.NewObjectId() acc.BalanceAmount = 3 dbEngine.Insert(&acc);
通过使用结构体,您可以确保数据格式正确并与 MongoDB 所需的 BSON 文档结构兼容。
以上是如何使用 mgo 将 BSON 文档传递给 Go 中的函数?的详细内容。更多信息请关注PHP中文网其他相关文章!