Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "fmt"
- "labix.org/v2/mgo"
- "labix.org/v2/mgo/bson"
- )
- type TestDataSub struct {
- X int
- Y int
- }
- type TestData struct {
- Foo string
- Bar TestDataSub
- }
- type Magic struct {
- //data string
- }
- func (*Magic) SetBSON(raw bson.Raw) error {
- var m map[string]interface{}
- if err := raw.Unmarshal(&m); err != nil {
- return err
- }
- fmt.Printf("%#v\n", m)
- return nil
- }
- func main() {
- session, err := mgo.Dial("localhost")
- if err != nil {
- panic(err)
- }
- defer session.Close()
- // Optional. Switch the session to a monotonic behavior.
- session.SetMode(mgo.Monotonic, true)
- c := session.DB("test").C("magic")
- err = c.Insert(&TestData{"abcd", TestDataSub{1, 2}})
- if err != nil {
- panic(err)
- }
- result := Magic{}
- err = c.Find(bson.M{"foo": "abcd"}).One(&result)
- if err != nil {
- panic(err)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment