gpt4 book ai didi

mongodb - 如何构造和传递bson文件-Go lang?

转载 作者:IT王子 更新时间:2023-10-29 02:00:04 26 4
gpt4 key购买 nike

我正在使用 Go和我的项目中的 mongoDB 和 mgo就是连接连接MongoDB

我有以下文档,这是要插入到 MongoDB 中的

 {
"_id" : ObjectId("53439d6b89e4d7ca240668e5"),
"balanceamount" : 3,
"type" : "reg",
"authentication" : {
"authmode" : "10",
"authval" : "sd",
"recovery" : {
"mobile" : "sdfsd",
"email" : "sds@gmail.com"
}
},
"stamps" : {
"in" : "x",
"up" : "y"
}
}

我已经按照上面的方法创建了 BSON 文档。

我有两个包裹

  1. account.go

  2. dbEngine.go

account.go用于创建BSON文档并将BSON文档发送到dbEngine.go

dbEngine.go 用于建立与 MongoDB 的连接并插入文档。将 BSON 文档传递给 dbEngine.go 时

dbEngine.Insert(bsonDocument);

在 dbEngine.go 中我有方法

func Insert(document interface{}){
//stuff
}

Error : panic: Can't marshal interface {} as a BSON document.

接口(interface){}是否不用于BSON文档。

我是 Go 的新手。任何建议或帮助将不胜感激

最佳答案

你不需要自己生成BSON文档。
假设在 account.go 中你将有一个帐户结构:

type Account struct {
Id bson.ObjectId `bson:"_id"` // import "labix.org/v2/mgo/bson"
BalanceAmount int
// Other field
}

然后在 dbEngine.go 中插入函数:

func Insert(document interface{}){
session, err := mgo.Dial("localhost")
// check error
c := session.DB("db_name").C("collection_name")
err := c.Insert(document)
}

然后,在您的应用中的某些地方:

acc := Account{}
acc.Id = bson.NewObjectId()
acc.BalanceAmount = 3

dbEngine.Insert(&acc);

关于mongodb - 如何构造和传递bson文件-Go lang?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22930060/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com