我使用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版本。 但我不确定。
谢谢!
答案 0 :(得分:0)
32位系统和64位系统具有不同的int
大小。要验证int
停止和long
开始的位置,您可以检查ubuntu服务器和Windows本地计算机上的sys.maxint
值。例如,在我的64位计算机上,sys.maxint
为9223372036854775807
(因为sys.maxint
是最大签名 {{1},因此为2 ^ 63 - 1 })。当然,您也可以切换到python3,其中不再有int
而只有int
。