MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Mengirim kueri MongoDB ke sistem yang berbeda:mengonversi ke JSON dan kemudian mendekode menjadi BSON? Bagaimana melakukannya dalam bahasa Go?

Setelah beberapa penelitian, saya menemukan mejson perpustakaan, namun itu hanya untuk Marshaling, jadi saya memutuskan untuk menulis Unmarshaller.

Lihat ejson (Saya menulisnya), sekarang ini adalah ejson yang sangat sederhana -> bson konverter, tidak ada bson -> ejson namun, Anda dapat menggunakan mejson untuk itu.

Sebuah Contoh :

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. konversi stempel waktu UTC ke stempel waktu zona lainnya

  2. TypeError:Tidak dapat menggunakan operator 'in' untuk mencari '_id' di male

  3. Bagaimana cara menggunakan agregasi untuk MongoDB untuk memfilter berdasarkan $dan/$or?

  4. MongoDB $strcasecmp

  5. Apa yang terjadi ketika mongodb kehabisan memori?