Je reçois différents documents BSON, dont voici un exemple :
{ "group" : { "id": ObjectId("11a123456bc345d452d32c0b5"), "name": "SomeName" }, "count1": 6, "count2": 33, "totalCount": 39 }
J'essaie d'utiliser mgo/gobson pour démarshaliser ces données dans un map[string]interface{}, mais j'obtiens toujours une erreur. Le code de démarchage est le suivant
var record map[string]interface{}
err := bson.Unmarshal(data, &record)
Cela a donné lieu à une erreur indiquant que le document était corrompu. En regardant dans le code, j'ai vu qu'il s'attendait à ce que la longueur du tableau d'octets soit les premiers octets. J'ai donc ajouté un code similaire à celui trouvé dans les tests.
rec := make([]byte, len(data)+6)
binary.LittleEndian.PutUint32(rec, uint32(len(rec)))
copy(rec[4:], data)
Cela m'a permis de passer l'erreur de document corrompu, mais maintenant j'obtiens
Unknown element kind (0x7B)
Qu'est-ce qui ne va pas pour que je ne puisse pas facilement démarchander le document BSON ci-dessus dans une carte ? Y a-t-il un problème avec le document BSON lui-même ? Je ne suis pas le créateur du document BSON, mais je suis en mesure de leur fournir des informations en retour si nécessaire.