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

MongoDB中如何递增对象内的属性值?

Mongoose 对象属性值递增解决方案

错误原因分析

  • 前两种写法直接将整个items对象传入$inc,但$inc要求传入具体的字段路径而非对象,因此触发类型错误。
  • 第三种写法尝试用模板字符串生成字段路径,但在对象字面量中直接使用模板字符串作为键名会触发语法错误,需使用计算属性名(方括号包裹)来动态生成键。

正确实现代码

let newItem = "1234";
let userProfile = await User.findOneAndUpdate(
  { userId: userID },
  { $inc: { [`items.${newItem}`]: 1 } },
  { new: true } // 可选:返回更新后的文档,默认返回更新前的文档
);

补充说明

  • {new: true}为可选参数,若需要获取更新后的用户数据,建议添加该参数;默认情况下,findOneAndUpdate返回更新前的文档。
  • 你的Schema中items定义为Object类型完全符合需求,也可替换为Map类型,实现效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 14:00:51