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

MongoDB中$inc与$Push一同使用时不生效问题排查

解决MongoDB更新中$inc不生效的问题

嘿,我一眼就发现问题所在啦!你把$push和$inc拆成了两个独立的对象,分别作为update()方法的第二个和第三个参数,但MongoDB的update()方法规则是:所有更新操作符必须放在同一个对象里作为第二个参数,第三个参数是用来配置更新选项(比如upsert、multi这类)的,所以你的$inc被当成了无效的选项,自然不会执行数值递增操作。

正确的写法应该是这样:

db.contests.update(
  { _id: ObjectId("5ad7904d44e6c9330c3aeb6b") },
  {
    $push: {
      players: { $each: [ { teamId: 340000474, TeamName: 'xx' } ] }
    },
    $inc: { "joinedplayers": 1 }
  }
)

简单解释下:

把$push和$inc都塞进第二个参数的同一个对象里,MongoDB就会同时执行这两个更新操作——既往players数组里添加新元素,又把joinedplayers字段的值加1。你再执行这个修正后的语句,就能看到joinedplayers正常递增啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:06:10