mongodb中的减量值

时间:2019-04-14 19:17:23

标签: node.js mongodb mongodb-query

我正在创建一个购物应用程序。每个用户都有钱包。 结构就像:

{ 
    "userName" : "Gandalf the Grey",
    "wallet" : 100,
    "orderHistory" : []
}

说此用户购买的商品价值50单位。有没有更好的方法,而不是通过findOne获取其钱包价值,然后进行减法并更新新的钱包价值?现在,我通过2种不同的操作来实现它

dbo.collection('users').findOne({'userName': controller.userName})
.then(function(doc) { 
    updateWallet(doc); 
}

然后

let newWalletBalance = doc.wallet - product.cost;
dbo.collection('users').updateOne(
    {'userName':controller.userName},
    { $set: {wallet: newWalletBalance } }
);

是否可以将它们合并为一个?

1 个答案:

答案 0 :(得分:0)

您可以使用$inc运算符

//user model
...
User.hasMany(models.Comment)
...

//book model
...
Book.hasMany(models.Comment);
...

//comment model
...
Comment.belongsTo(models.User);
Comment.belongsTo(models.Book);
...
//route
...
Comment.create(
    {
        //what do i put here? or what other syntax i use
     }
)