【问题标题】:mongoose findOneandUpdate math operation猫鼬 findOneandUpdate 数学运算
【发布时间】:2021-05-14 05:52:52
【问题描述】:

我正在尝试在 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

当然,猫鼬会抱怨视图未定义(因为之前未定义)。有什么建议可以通过第二种方式完成吗?

干杯

【问题讨论】:

    标签: mongodb mongoose


    【解决方案1】:

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

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

    【讨论】:

    猜你喜欢
    • 2021-09-25
    • 2017-10-05
    • 2018-07-15
    • 2020-11-13
    • 2013-06-19
    • 2013-02-13
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多