首页 > 解决方案 > 使用 findOneAndUpdateQuery- Mongoose 中的文档值更新文档内的值

问题描述

我有这样的用户方案


const userSchema = new mongoose.Schema(
  { 
    name: {
      type: String,
    },
    points: Number
}

我想使用当前用户的积分更新用户积分,即user.points += 100 或像这样在查询中

await User.findByIdAndUpdate( userId , 
      { loyaltyPoints :  user.loyaltyPoints + 100}
      , {new  :true, runValidator :true} )

标签: node.jsmongodbmongoose

解决方案


由于 points 是一个数字,因此您可以使用专门为此目的设计的MongoDB $inc 。所以一个+= 100将是

{
  $inc: {
    points: 100
  }
}

推荐阅读