En Mongodb tengo este campo:
units: NumberDecimal('1'),
Asignado en Ir a:
Units float64 `json:"units"`
Estoy tratando de leer los datos de Go con:
var result dbo.Invoice coll := client.Database("hobbit").Collection("customer") filter := bson.D{{"_id", code}} err = coll.FindOne(context.TODO(), filter).Decode(&result) if err != nil { if err == mongo.ErrNoDocuments { return model.Customer{}, fmt.Errorf("invoice %s not found", code) } return model.Customer{}, fmt.Errorf("reading invoice %s from database: %s", code, err) }
y me sale este error
Error: error un-marshalling invoice F-3945: error decoding key lines.0.units: cannot decode 128-bit decimal into a float32 or float64 type
Traté de registrar la conversión con bsoncodec :
registryBuilder := bsoncodec.NewRegistryBuilder() registryBuilder.RegisterTypeMapEntry(bsontype.Decimal128, reflect.TypeOf(float64(0)))
y sigue dando el mismo error
Debería ser
Units primitive.Decimal128 `json:"units"`
Ese es el tipo de datos para NumberDecimal