我正在研究计算日常开支的电报机器人。我想创建一个可以为一个字段添加值的命令。问题是,存在多个字段。下面的代码仅在$ inc中只有一行时才有效(或者如果我为它们添加值,但我必须添加一个值)。我怎样才能为“房子”或“服装”增加价值,但不能同时增加两者
router.post('/addExpense', function(req, res){
Expense.update({
$inc: {
house: req.body.house,
clothing: req.body.clothing
}
},
function(err, expense){
if(err)
return res.status(500).send("Problem adding data to db");
res.status(200).send(expense);
});
});
答案 0 :(得分:1)
这样做的一种方法是您可以在更新查询之外检查它是否为空特征。某种方式。
router.post('/addExpense', function(req, res) {
if (req.body.house) {
Expense.update({
$inc: {
house: req.body.house,
// clothing: req.body.clothing
}
},
function(err, expense) {
if (err)
return res.status(500).send("Problem adding data to db");
res.status(200).send(expense);
});
} else {
Expense.update({
$inc: {
// house: req.body.house,
clothing: req.body.clothing
}
},
function(err, expense) {
if (err)
return res.status(500).send("Problem adding data to db");
res.status(200).send(expense);
});
}
});
答案 1 :(得分:0)
您可以使用 $ set 更新您希望增加的其他字段和 $ inc 。像这样......
Expense.update({},{
$inc:{ status1:1 },
$set:{ status2:1 }
})
此处您必须将第一个 {} 留空,因为这是选择条件。如果您有任何选择标准,请添加任意内容 您必须在第二个 {} 中写入更新查询,此处 status1 是您希望以1递增和 status2的字段是您要更新的字段。这里status2值将设置为1.您可以根据自己的意愿将其设置为任何其他值,只需将该值替换为您的值。