使用 pymongo 将大的 unsigned int64 写入 mongoDB

问题描述 投票:0回答:1

我有一个从外部来源获得的数字,我想将其作为 Int 写入 mongo

问题是该数字高于有符号的 Int64 (这就是 mongo 实现它的方式) - 但仍然适合无符号的 int64

号码是: 9223372036854776000

我怎样才能将其写入mongo? 我越来越

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

python mongodb pymongo
1个回答
1
投票

使用最新的 PyMongo 和 MongoDB 3.4 或更高版本,您可以将标准 Python Decimal 与新的 BSON Decimal128 类型一起使用

from decimal import Decimal
from bson.decimal128 import Decimal128
from pymongo import MongoClient

d = Decimal128(Decimal(9223372036854776000))
collection = MongoClient().test.test
collection.insert_one({'myNumber': d})
© www.soinside.com 2019 - 2024. All rights reserved.