尝试插入整数时,MongoDB会插入float

时间:2011-11-21 21:00:38

标签: mongodb

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

如何让Mongo插入一个整数?

谢谢

4 个答案:

答案 0 :(得分:268)

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

您也可以使用NumberLong。

答案 1 :(得分:14)

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

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

答案 2 :(得分:4)

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

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

答案 3 :(得分:-8)

嗯,它是JavaScript,所以'value'中的数字是一个数字,可以是整数或浮点数。但是JavaScript并没有什么区别。来自Learning JavaScript

  

数字数据类型

     

JavaScript中的数字数据类型是浮点数,但它们可能有也可能没有小数部分。如果它们没有小数点或小数分量,则它们被视为整数 - 基数-10整数,范围为-2 53 至2 53