MongoDB 在尝试插入整数时插入 float

   > db.data.update({'name': 'zero'}, {'$set': {'value': 0}})
> db.data.findOne({'name': 'zero})
{'name': 'zero', 'value': 0.0}

如何让 Mongo 插入一个整数?

谢谢你

158046 次浏览

它是JavaScript,所以value是一个数字,可以是整数也可以是浮点数。但在JavaScript中并没有真正的区别。从学习JavaScript:

数字数据类型

JavaScript中的数字数据类型是浮点数,但它们可能有也可能没有小数成分。如果它们没有小数点或小数成分,则它们被视为-253到253范围内以10为底的整数。

db.data.update({'name': 'zero'}, {'$set': {'value': NumberInt(0)}})

您也可以使用NumberLong。

稍微简单一点的语法(至少在Robomongo中)对我有用:

db.database.save({ Year : NumberInt(2015) });

如果值类型已经是double,那么在使用NumberInt()或NumberLong()函数时,使用$set命令更新值不能将值类型double更改为int。 因此,要更改值类型,它必须更新整个记录

var re = db.data.find({"name": "zero"})
re['value']=NumberInt(0)
db.data.update({"name": "zero"}, re)