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

使用PyMongo update_many复制字段值失败:$requestid被识别为字面量

MongoDB批量更新字段值复制问题解决方法

你遇到的问题是因为普通update_many的$set操作符无法直接引用文档内的其他字段值,直接写'$requestid'会被当作字符串字面量存储。要实现字段值复制且不用eval,可以使用MongoDB 4.2及以上版本支持的聚合管道更新方式。

修正后的代码

res = result_collection.update_many(
    filter={'requestid': {'$in': str_req_ids}},
    update=[{'$set': {'original_requestid': '$requestid'}}],
    session=session
)

关键说明

  • 将update参数从普通对象改为聚合管道数组,这样MongoDB会解析管道中的$requestid为当前文档的requestid字段值,而非字面量字符串。
  • 该方式要求MongoDB版本≥4.2,若你的版本低于此,需要先升级MongoDB。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 07:04:54