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

我如何让Mongo插入一个整数?

谢谢你!


当前回答

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

您也可以使用NumberLong。

其他回答

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

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

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

db.database.save({ Year : NumberInt(2015) });
db.data.update({'name': 'zero'}, {'$set': {'value': NumberInt(0)}})

您也可以使用NumberLong。

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

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