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

day*_*mer 189 mongodb

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

如何让Mongo插入一个整数?

谢谢

Ber*_*ett 299

db.data.update({'name': 'zero'}, {'$set': {'value': NumberInt(0)}})
Run Code Online (Sandbox Code Playgroud)

您也可以使用NumberLong.

  • 我有个问题.NumberInt只在mongo shell中提供,你如何用像JavaScript.js这样的JavaScript语言呢? (12认同)
  • 默认情况下,mongo shell将所有数字视为浮点值.所以我们需要明确指定我们想要使用的数字类型,例如NumberInt或NumberLong.http://docs.mongodb.org/manual/core/shell-types/ (10认同)

Gri*_*kor 16

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

db.database.save({ Year : NumberInt(2015) });
Run Code Online (Sandbox Code Playgroud)


小智 5

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

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