mongo:必须是int的实例不长

时间:2017-05-11 10:49:53

标签: python mongodb

我使用mongo v4.2.3

在python 2.7和windows 7中运行代码
from nut.mongo import connection
_c = connection['pandora'].contacts
_contact = _c.Contacts()
_contact['_id'] = 'duwenbin'
_contact['contact_address_data_id'] = int('170511111552051000')
_contact.save()

并显示例外:

SchemaTypeError: contact_address_data_id must be an instance of int not long

但我在ubuntu 14.04 LTS中运行相同的代码,使用python 2.7,使用mongo v3.2.9

代码正常运行!

有人可以告诉我为什么吗?我认为不同的是mongo版本。 但我不确定。

谢谢!

1 个答案:

答案 0 :(得分:0)

32位系统和64位系统具有不同的int大小。要验证int停止和long开始的位置,您可以检查ubuntu服务器和Windows本地计算机上的sys.maxint值。例如,在我的64位计算机上,sys.maxint9223372036854775807(因为sys.maxint是最大签名 {{1},因此为2 ^ 63 - 1 })。当然,您也可以切换到python3,其中不再有int而只有int