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

PyMongo bulk_write用updateMany报错未定义,批量更新数据求助

解决PyMongo bulk_write中updateMany未定义的问题

问题原因

你混淆了MongoDB Shell语法和PyMongo的API规范。PyMongo的bulk_write方法需要使用PyMongo官方提供的操作类,而非直接调用Shell里的函数名。

正确实现代码

先从pymongo导入UpdateMany类,再创建对应操作实例:

from pymongo import UpdateMany

operations = []
for i in data:
    operations.append(UpdateMany(
        filter={'location.zip': i['_id']},
        update={"$set": {'calculations.distance': i['distance']}},
        upsert=True
    ))
result = collection.bulk_write(operations, ordered=False)
print(result)

额外优化建议

  • 若数据量极大(如你的3000K条场景),建议将操作列表分批次执行(比如每1000个操作执行一次bulk_write),避免一次性生成过大列表占用过多内存
  • ordered=False参数会让MongoDB并行执行操作(不保证顺序),能进一步提升批量更新效率,适合你的业务场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:15:49