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