Details
-
Task
-
Resolution: Gone away
-
Major - P3
-
None
-
None
Description
EDIT: The resolution for this ticket is that we should document that unmarshalling into a struct that has a field with type interface{} yields a bson.D. This differs from mgo, which defaulted to bson.M.
if we have a struct like
type Something struct {
|
Val []interface `bson="val"` |
}
|
In our case this struct is an array of objects. It was actually just a draftJS block. in JSON it would look like this, and this is what it would look like after being inserted into mongo
[{
|
"entityRanges" : [ ], |
"inlineStyleRanges" : [ ], |
"key" : "fb86k", |
"text" : "", |
"type" : "unstyled" |
}]
|
the mongo driver marshalled this perfectly into the database. No issues there. However when pulling the data out, we receive
[
|
{Key: "entityRanges", Value: [ ]}, |
{Key: "inlineStyleRanges", Value: [ ]}, |
{Key: "key", Value: "fb86k"}, |
{Key: "type", Value: "unstyled"}, |
|
|
]
|
this doesn't reflect the data in the database and actually makes no sense why mongo decided to break up the object like this
Attachments
Issue Links
- is related to
-
GODRIVER-2766 Fail to retrieve a document with a map[primitive.ObjectID]interface{} field
-
- Closed
-