MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Изпращане на MongoDB заявка към различна система:конвертиране в JSON и след това декодиране в BSON? Как да го направя на езика Go?

След известно проучване открих mejson библиотека, но тя е само за Marshaling, така че реших да напиша Unmarshaller.

Вижте ejson (Аз го написах), в момента е много прост ejson -> bson конвертор, няма bson -> ejson все пак можете да използвате mejson за това.

пример :

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. mongorestore неуловено изключение:синтактична грешка

  2. Групова актуализация на документи в MongoDB

  3. MongoDB предварително зарежда документи в RAM за по-добра производителност

  4. Агрегирайте $group за множество периоди от време

  5. Намерете някои стойности в колекция на mongodb?