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
相关产品推荐
相关产品推荐

