-
Type:
Improvement
-
Resolution: Done
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: BSON
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
bson encode time.Time format data, decode is not time.Time format, but double type data.
test case:
beforeTimeVal := time.Now() beforeTimeMap := map[string]interface{}{"ts": beforeTimeVal} before, err := Marshal(beforeTimeMap) noerr(t, err) afterTimeMap := map[string]interface{}{} err = Unmarshal(before, &afterTimeMap) noerr(t, err) afterTime, ok := afterTimeMap["ts"].(time.Time) if !ok { t.Errorf("after time format error. after time info:%#v", afterTimeMap) return } if afterTime.UnixNano() != beforeTimeVal.UnixNano() { t.Errorf("after time not equal before time. befere:%#v, after:%#v", beforeTimeVal, afterTime) return }
test case result:
/home/reage/go_src/src/mongodb/mongo-go-driver/bson/bson_test.go:67: after time format error. after time info:map[string]interface {}{"ts":1560433311128} FAIL