从 shell 中更新/写入到文档的数字,会变为 float 类型

引用:“shell 中的数字都被 MongoDB 当作是双精度数。这意味着如果你从数据库中获得的是一个 32 位整数,修改文档后,将文档存回数据库的时候,这个整数也就被换成了浮点数,即便保持这个整数原封不动也会这样的。”

参考:《MongoDB 权威指南》第一版

db.data.update({‘name’: ‘zero’}, {‘$set’: {‘value’: 0}})
db.data.findOne({‘name’: ‘zero})

{'name': 'zero', 'value': 0.0}  

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

http://stackoverflow.com/questions/8218484/mongodb-inserts-float-when-trying-to-insert-integer