You need to enable JavaScript to run this app. Python使用pymongo调用update_one时$addFields报Unknown modifier错误
优惠活动
大模型
产品
解决方案
定价
更多

Python使用pymongo调用update_one时$addFields报Unknown modifier错误

报错原因

$addFields是MongoDB聚合管道专用的运算符,不属于普通更新操作支持的修饰符范畴。你之前直接把包含$addFields的字典传给update_one的第二个参数,被pymongo识别为普通更新请求,因此抛出未知修饰符的错误。

解决办法

要使用$addFields完成更新,需要将更新逻辑作为聚合管道阶段,放在数组中传入update_one,正确代码如下:

# 替换为你实际使用的集合对象
collection.update_one(
    filter={'seismic_id': 12345},
    # 管道式更新必须用数组包裹阶段列表
    update=[
        {'$addFields': {'seismic_properties_obj.Client Facing': ['No']}}
    ]
)
补充说明
  • 该写法要求MongoDB服务端版本≥4.2,如果你使用的是更早的版本,无法使用管道式更新,直接用原本的$set修饰符即可实现完全相同的字段新增效果:
    collection.update_one(
        {'seismic_id': 12345},
        {'$set': {'seismic_properties_obj.Client Facing': ['No']}}
    )
    
  • 仅当你需要在更新时使用聚合表达式(比如引用文档其他字段的值做计算、使用聚合函数等)时,才需要使用$addFields的管道更新写法,单纯新增固定值字段用$set性能和兼容性都更优。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 08:27:00