MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Wysyłanie zapytania MongoDB do innego systemu:konwersja do JSON, a następnie dekodowanie do BSON? Jak to zrobić w języku Go?

Po kilku poszukiwaniach znalazłem mejson Biblioteka jest jednak przeznaczona tylko do Marshalingu, więc postanowiłem napisać Unmarshaler.

Oto ejson (Ja to napisałem), teraz jest to bardzo prosty ejson -> bson konwerter, nie ma bson -> ejson jednak możesz użyć mejson za to.

przykład :

const j = `{"_id":{"$oid":"53c2ab5e4291b17b666d742a"},"last_seen_at":{"$date":1405266782008},"display_name":{"$undefined":true},
"ref":{"$ref":"col2", "$id":"53c2ab5e4291b17b666d742b"}}`

type TestS struct {
    Id          bson.ObjectId `bson:"_id"`
    LastSeenAt  *time.Time    `bson:"last_seen_at"`
    DisplayName *string       `bson:"display_name,omitempty"`
    Ref         mgo.DBRef     `bson:"ref"`
}

func main() {
    var ts TestS
    if err := ejson.Unmarshal([]byte(j), &ts); err != nil {
        panic(err)
    }
    fmt.Printf("%+v\n", ts)

    //or to convert the ejson to bson.M

    var m map[string]interface{}
    if err := json.Unmarshal([]byte(j), &m); err != nil {
        t.Fatal(err)
    }
    err := ejson.Normalize(m)
    if err != nil {
        panic(err)
    }
    fmt.Printf("%+v\n", m)

}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoid Query DB według wirtualnego atrybutu

  2. Mongoose i unikalne pole

  3. Uzyskaj ostatnie dokumenty z określonymi kryteriami

  4. Zapytanie Mongodb dotyczące zagnieżdżonych elementów tablicy

  5. Dlaczego MongoDB nie używa fsync()?