How to construct and pass bson document - Go lang?

后端 未结 2 1238
面向向阳花
面向向阳花 2020-12-21 18:21

I am using Go and mongoDB in my project and mgo is to connect to connect MongoDB.

I am having following document this is to be inserted in the MongoDB

相关标签:
2条回答
  • 2020-12-21 18:53

    You don't need to generate a BSON document yourself.
    Let say in account.go you will have an account struct:

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

    Then in dbEngine.go your Insert function:

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

    And then, some where in your app:

    acc := Account{}
    acc.Id = bson.NewObjectId()
    acc.BalanceAmount = 3
    
    dbEngine.Insert(&acc);
    
    0 讨论(0)
  • 2020-12-21 19:08

    The mgo driver uses the labix.org/v2/mgo/bson package to handle BSON encoding/decoding. For the most part, this package is modelled after the standard library encoding/json package.

    So you can use structs and arrays to represent objects. For example,

    type Document struct {
        Id bson.ObjectId `bson:"_id"`
        BalanceAmount int `bson:"balanceamount"`
        Type string `bson:"type"`
        Authentication Authentication `bson:"authentication"`
        Stamps Stamps `bson:"stamps"`
    }
    type Authentication struct {
        ...
    }
    type Stamps struct {
        ...
    }
    

    You can now create values of this type to pass to mgo.

    0 讨论(0)
提交回复
热议问题