sql >> Databáze >  >> NoSQL >> MongoDB

Odeslání dotazu MongoDB do jiného systému:převod na JSON a poté dekódování do BSON? Jak to udělat v jazyce Go?

Po nějakém výzkumu jsem našel mejson knihovna, ale je pouze pro Marshaling, takže jsem se rozhodl napsat Unmarshaller.

Podívejte se na ejson (psal jsem to já), právě teď je to velmi jednoduchý ejson -> bson převodník, není zde žádný bson -> ejson přesto můžete použít mejson za to.

příklad :

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. MongoDB agregujte skupinu na vnitřní podřízené kolekci a získejte kompletní dokument s počtem

  2. Nodejs Mongo vložit do vnořeného dokumentu - dynamický název pole

  3. můžeme napsat mongodb crud dotazy a souhrnný dotaz dohromady?

  4. Zkoušel někdo MongoDB na Google App Engine?