Mongoengine LongField溢出错误

时间:2013-09-09 16:26:47

标签: mongodb mongoengine flask-mongoengine

我有一个Text模型;

class Text(db.Document):
    siphash_value = db.LongField()

然后我使用siphash lib创建一个哈希。(https://github.com/majek/pysiphash

此lib将字符串转换为长值,如 12398370950267227270L

如果我尝试将文档保存到我的数据库;

Text(siphash_value=12398370950267227270L).save()

我收到此错误:

OverflowError: MongoDB can only handle up to 8-byte ints

2 个答案:

答案 0 :(得分:5)

MongoDB只支持64位整数(bson.spec),所以pymongo无法转换Long因此错误。

答案 1 :(得分:0)

你能告诉我们为什么它现在正在运作吗?新图书馆正在返回一个非长期的字段? (我不能评论你自己的答案,因为我的声誉不到50,对不起所有。)

我尝试用FloatField替换LongField并且它有效。实际上它有相同的结果。 只是有一个不同的符号(1.2398370950267228e + 19)。