当前位置: 首页 > 面试题库 >

如何构造并通过bson文件-Go语言?

东方嘉佑
2023-03-14
问题内容

我使用转到我的项目和MongoDB和
氧化镁是连接来连接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
}

错误: 紧急:无法将接口{}编组为BSON文档。

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);


 类似资料:
  • 主要内容:多种方式创建和初始化结构体——模拟构造函数重载,带有父子关系的结构体的构造和初始化——模拟父级构造调用Go语言的类型或结构体没有构造函数的功能,但是我们可以使用结构体初始化的过程来模拟实现构造函数。 其他编程语言构造函数的一些常见功能及特性如下: 每个类可以添加构造函数,多个构造函数使用函数重载实现。 构造函数一般与类名同名,且没有返回值。 构造函数有一个静态构造函数,一般用这个特性来调用父类的构造函数。 对于 C++ 来说,还有默认构造函数、拷贝构造函数等。 多种方式创建和初始化结构

  • 通过上一节《 Go语言goroutine》的学习,关键字 go 的引入使得在Go语言中并发编程变得简单而优雅,但我们同时也应该意识到并发编程的原生复杂性,并时刻对并发中容易出现的问题保持警惕。 事实上,不管是什么平台,什么编程语言,不管在哪,并发都是一个大话题。并发编程的难度在于协调,而协调就要通过交流,从这个角度看来,并发单元间的通信是最大的问题。 在工程上,有两种最常见的并发通信模型:共享数据

  • 问题内容: 我使用以下代码来解析html模板。它运作良好。 和html模板test.html。 但是当我将html文件移动到另一个目录时。然后使用以下代码。输出始终为空。 谁能告诉我怎么了?还是无法使用html / template包? 问题答案: 出问题的是您的程序(程序包)找不到文件。当您指定相对路径(您是相对路径)时,它们将解析到当前工作目录。 您必须确保html文件/模板在正确的位置。例如

  • 问题内容: 我是mongodb-go-driver的新手。但是我被困住了。 查看m [id]的内容时,它没有内容-全部为null。 我的地图是这样的:m map [string] Language 语言定义如下: 我究竟做错了什么? 我正在使用此示例进行学习:https : //github.com/mongodb/mongo-go- driver/blob/master/examples/doc

  • 问题内容: 我开始学习Golang,我想知道如何通过调用url获得json响应,如果您能给我一个例子,那么对指导自己来说将是很棒的。 问题答案: 我会写一些辅助函数来做到这一点: 可以在这里找到完整的工作示例:http : //play.golang.org/p/b1WJb7MbQV 请注意,检查状态码和Get错误非常重要,并且必须明确关闭响应正文(请参见此处的文档: http //golang.

  • 当创建Gio controller对象时,可以将配置参数传递给controller,具体传递方式如下所示: var configs = {         color: {                 surface:0xFF0000         } }; var globe = new Gio.controller(container, configs);