mongodb控制台更新更改数据类型

mongodb控制台更新更改数据类型,mongodb,mongodb-query,Mongodb,Mongodb Query,原始数据为: {"u":1} “u”的类型是Int。 在mongod控制台中运行命令后: update({},{$set:{"u":0}}) find({}) 数据确实变得 {"u":0} 看起来还不错。但当我使用C++驱动程序读取它们时: bson.getIntField("u") 撞车。原因是类型“u”是双重的!这意味着mongod的update命令可以无声地改变u的类型 为什么??如何预防呢 附言 mongodb版本是2.6.6 linux默认情况下,任何数值都会插入或“更改”为双

原始数据为:

{"u":1}
“u”的类型是Int。 在mongod控制台中运行命令后:

update({},{$set:{"u":0}})
find({})
数据确实变得

{"u":0}
看起来还不错。但当我使用C++驱动程序读取它们时:

bson.getIntField("u")
撞车。原因是类型“u”是双重的!这意味着mongod的update命令可以无声地改变u的类型

为什么??如何预防呢

附言
mongodb版本是2.6.6 linux

默认情况下,任何数值都会插入或“更改”为
双精度。对于其他“类型”,使用您希望在C++或其他类型敏感代码中读取的OR或:
update({},{“$set”:{“u”:numberprint(0)})
或:

update({},{“$set”:{“u”:NumberLong(“0”)})