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

Jak efektivně převést bson na json pomocí ovladače mongo-go-driver?

Pokud znáte strukturu vašeho BSON, můžete vytvořit vlastní typ, který implementuje json.Marshaler a json.Unmarshaler rozhraní a nakládá s NaN, jak si přejete. Příklad:

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"`
    /* ... */
}

Pokud máte libovolnou strukturu svého BSON, jedinou možností je procházet strukturou pomocí odrazu a převést jakékoli výskyty NaN na typ (možná vlastní typ, jak je popsáno výše)




  1. Jak zkontrolovat, zda je socket aktivní (připojený) v socket.io s více uzly a socket.io-redis

  2. Jak správně dotazovat vnořený dokument MongoDB pomocí pythonu?

  3. Je db.stats() blokovacím voláním pro MongoDB?

  4. Jaký je správný způsob práce s ISODate v Mongoose