You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas将int64存入MongoDB自动转为int32的问题求助

高效解决Pandas int64写入MongoDB转为Long类型的问题

问题根源

Pandas里的int64是numpy数值类型,当数值处于int32范围内时,PyMongo会自动将其映射为MongoDB的int32类型,而非要求的long类型,导致集合校验失败。单纯修改Pandas列类型无法绕过这个自动映射逻辑。

高效解决方案

无需逐行处理数据,直接批量将目标列转换为PyMongo的bson.int64.Int64类型即可,步骤如下:

  1. 导入bson的Int64类型
from bson.int64 import Int64
  1. 批量转换DataFrame目标列
# 对整列应用Int64转换,性能远高于逐行处理
df["MY_INT"] = df["MY_INT"].apply(Int64)
  1. 正常写入MongoDB
collection.insert_many(df.to_dict('records'))

原理说明

通过将numpy int64数值包装为PyMongo提供的Int64对象,PyMongo会明确将其识别为MongoDB的long类型,完全符合集合的bsonType校验规则,同时批量操作的性能和原生insert_many几乎一致。

内容的提问来源于stack exchange,提问作者LSB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 17:21:01