尝试插入整数时,MongoDB会插入浮点数

> 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。

一个稍微简单的语法(至less在Robomongo)为我工作:

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

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

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

那么,这是JavaScript,所以你在'价值'是一个数字,它可以是一个整数或浮动。 但是JavaScript没有什么区别。 从学习JavaScript :

数字数据types

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