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

Jak skutecznie przekonwertować bson na json za pomocą mongo-go-driver?

Jeśli znasz strukturę swojego BSON, możesz utworzyć niestandardowy typ, który implementuje json.Marshaler i json.Unmarshaler interfejsów i obsługuje NaN, jak chcesz. Przykład:

type maybeNaN struct{
    isNan  bool
    number float64
}

func (n maybeNaN) MarshalJSON() ([]byte, error) {
    if n.isNan {
        return []byte("null"), nil // Or whatever you want here
    }
    return json.Marshal(n.number)
}

func (n *maybeNan) UnmarshalJSON(p []byte) error {
    if string(p) == "NaN" {
        n.isNan = true
        return nil
    }
    return json.Unmarshal(p, &n.number)
}

type myStruct struct {
    someNumber maybeNaN `json:"someNumber" bson:"someNumber"`
    /* ... */
}

Jeśli masz dowolną strukturę swojego BSON, jedyną opcją jest przechodzenie przez tę strukturę za pomocą odbicia i przekonwertowanie wszelkich wystąpień NaN na typ (prawdopodobnie typ niestandardowy, jak opisano powyżej)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Klonowanie instancji MongoDB lub zestawu replik

  2. Czy Meteor może poprawnie obsługiwać dane aktualizowane zewnętrznie bezpośrednio do bazy danych MongoDB?

  3. Niesamowicie długi czas ładowania RSpec na OS X

  4. Węzeł wstawia duże dane za pomocą mangusty

  5. Jak mogę zbudować program używając sterownika c++ mongodb?