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

MongoDB批量更新问题:power<max_power时将power字段加1

问题分析与解决方法

你的代码未生效有两个核心问题:

  1. 把字段名max_power写成了字符串常量'max_power',MongoDB会将其当作普通字符串与power数值对比,自然匹配不到任何文档
  2. MongoDB常规查询语法无法直接在条件里对比同文档的两个字段,必须用$expr来使用聚合表达式实现字段间的比较

正确代码

await ids.updateMany(
  { $expr: { $lt: ['$power', '$max_power'] } },
  { $inc: { power: 1 } }
)

代码说明

  • $expr允许在查询条件中使用聚合表达式,这里用$lt聚合操作符对比当前文档的$power和$max_power字段(字段名前加$表示引用文档中的对应字段)
  • 筛选出符合条件的文档后,$inc操作符会将这些文档的power字段值加1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 15:19:53