猫鼬 findOneandUpdate 数学运算

时间:2021-05-13 21:24:30

标签: mongodb mongoose

我正在尝试在 Mongoose(以及一般的其他数据库)中做一些事情,但是这一步我还没有弄清楚。

基本上我有以下查询

const a1 = await model.findOne({type: 3}).skip(random)
a1.views = a1.views - 1
await a1.save()
return a1

但我感兴趣的是

const a1 = await model.findOneAndUpdate({type: 3},{views: views--}, {new: true})
return a1

然而当然 mongoose 抱怨视图未定义(因为它之前没有定义)。有什么建议如何以第二种方式完成此操作吗?

干杯

1 个答案:

答案 0 :(得分:1)

您可以使用 $inc 运算符将字段增加/减少指定的值。

const a1 = await model.findOneAndUpdate(
     {type: 3},
     {
        $inc: {views : -1} // increase by -1 means decrease by 1
     }, 
     {new: true}
)
return a1