Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 如何防止mgo将int解组到float64_Mongodb_Go_Mgo - Fatal编程技术网

Mongodb 如何防止mgo将int解组到float64

Mongodb 如何防止mgo将int解组到float64,mongodb,go,mgo,Mongodb,Go,Mgo,我在mongodb中存储了未知的json结构数据。它们具有如下字段来表示unix时间: "date": 1424803567, 我正在使用mgo将它们加载到bson.M var result bson.M iter := c.Find(q).Iter() for iter.Next(&result) { 这些unix时间字段已变为fload64而不是int "date": 1.424728798e+09, 那么,如何防止上述情况发生?谢谢 Mgo不会将整数解组为浮点,除非应用程序

我在mongodb中存储了未知的json结构数据。它们具有如下字段来表示unix时间:

"date": 1424803567,
我正在使用mgo将它们加载到bson.M

var result bson.M
iter := c.Find(q).Iter()
for iter.Next(&result) {
这些unix时间字段已变为fload64而不是int

 "date": 1.424728798e+09,

那么,如何防止上述情况发生?谢谢

Mgo不会将整数解组为浮点,除非应用程序将目标值显式键入为浮点。Mgo在这里返回浮点值,因为数据库中存储的值是浮点值

通过使用结构指定类型,可以将浮点值解组为整数:

var result struct {
  Date int64 `bson:"date"`
}
for iter.Next(&result) {
  ...
}

刚刚检查了数据库中的数据。这确实是浮子。这就是数据输入的问题。它是通过使用带有UseNumber()的解码而不是直接解组来解决的。谢谢