如下面的代码所示,我在mongo shell中插入了4和5。 PyMongo将它们设为4.0和5.0。我从PyMongo插入7。 PyMongo得到它为7。
为什么会这样?我发现这个阴暗,我不想在未来追逐沉默的生产失败。 <在这里插入咆哮>
SPOILER警告:我试图隐藏可能妨碍某些学生的信息。请小心。
来自Mongo:
$:~/dev/mongouniv$ mongo
MongoDB shell version: 2.4.9
connecting to: test
> use m101
switched to db m101
> db.hw1.findOne()
> db.hw1.insert({"key":4})
> db.hw1.insert({"key":5})
> db.hw1.find()
{ "_id" : ObjectId("5566cccaa3e32a78d30eeddc"), "key" : 4 }
{ "_id" : ObjectId("5566ccdda3e32a78d30eeddd"), "key" : 5 }
来自Python:
import pymongo
from pymongo import MongoClient
# connect to database
connection = MongoClient('localhost', 27017)
In [20]: connection.m101.hw1.insert({"key":7})
Out[20]: ObjectId('5566ce513b8aa04a7585120f')
In [21]: list(connection.m101.hw1.find())
Out[21]:
[
{u'_id': ObjectId('5566cccaa3e32a78d30eeddc'), u'key': 4.0},
{u'_id': ObjectId('5566ccdda3e32a78d30eeddd'), u'key': 5.0},
{u'_id': ObjectId('5566ce513b8aa04a7585120f'), u'key': 7}]
我的Ubuntu软件包的版本:
dpkg -s python-pymongo
Version: 2.6.3-1build1
dpkg -s mongodb-server
Version: 1:2.4.9-1ubuntu2
dpkg -s mongodb-clients
Version: 1:2.4.9-1ubuntu2
答案 0 :(得分:2)
正如您从http://docs.mongodb.org/manual/core/shell-types/所见:
默认情况下,mongo shell将所有数字视为浮点值。