Guest User

Untitled

a guest
May 8th, 2013
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.85 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "fmt"
  5.     "labix.org/v2/mgo"
  6.     "labix.org/v2/mgo/bson"
  7. )
  8.  
  9. type TestDataSub struct {
  10.     X int
  11.     Y int
  12. }
  13. type TestData struct {
  14.     Foo string
  15.     Bar TestDataSub
  16. }
  17.  
  18. type Magic struct {
  19.     //data string
  20. }
  21.  
  22. func (*Magic) SetBSON(raw bson.Raw) error {
  23.     var m map[string]interface{}
  24.     if err := raw.Unmarshal(&m); err != nil {
  25.         return err
  26.     }
  27.     fmt.Printf("%#v\n", m)
  28.     return nil
  29. }
  30.  
  31. func main() {
  32.     session, err := mgo.Dial("localhost")
  33.     if err != nil {
  34.         panic(err)
  35.     }
  36.     defer session.Close()
  37.  
  38.     // Optional. Switch the session to a monotonic behavior.
  39.     session.SetMode(mgo.Monotonic, true)
  40.  
  41.     c := session.DB("test").C("magic")
  42.     err = c.Insert(&TestData{"abcd", TestDataSub{1, 2}})
  43.     if err != nil {
  44.         panic(err)
  45.     }
  46.  
  47.     result := Magic{}
  48.     err = c.Find(bson.M{"foo": "abcd"}).One(&result)
  49.     if err != nil {
  50.         panic(err)
  51.     }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment