我可以用两个字段的除法来更新文档中的字段吗?使用Node和MongoDB,我试图创建一个rating函数,我必须进行除法运算,但似乎没有任何效果。我希望rating的新值是,当前值除以投票数。
router.put("/:id/:rating", async (req, res) => {
const movie_rating = parseInt(req.params.rating);
try {
const updatedMovie = await Movie.findByIdAndUpdate(
req.params.id,
{
$inc: { noVotes: 1 },
$inc: { rating: movie_rating },
$divide: { rating: [rating, noVotes] },
// rating: { $divide: [rating, noVotes] }
},
{ new: true }
);
res.status(200).json(updatedMovie);
} catch (err) {
res.status(500).json(err);
}
});
2条答案
按热度按时间zbq4xfa01#
您需要更改几项内容
Sample
1.您需要聚合更新,因为您需要
divide
1.不能在同一操作中使用更新的值
1.不能在聚合更新中组合$inc,$set
1.或者,您可以使用$add代替$inc
1.您可以重新执行除法运算的操作,而不是进行另一个更新调用
dxpyg8gm2#
这可以通过
$set
来完成,它看起来像这样: