2
我想在用戶點擊某個按鈕時增加upvotes,並在數組內存儲他的stormpath用戶ID(req.user.href)。mongoose findByIdAndUpdate只更新文檔中的一個字段
TRY 1:
if (newUpvoters = found_post[0].upvoters.indexOf(req.user.href) == -1) {
Problem.findByIdAndUpdate(found_post[0].id,
{ $push: { upvoters: req.user.href }}
, {$inc: { upvotes : 1 } }, function (err, post) {
if (err) return next(err);
res.json(post);
})
}
結果: 只有upvoters陣列被正確地更新。 Upvotes不會遞增。
TRY 2:
Problem.findByIdAndUpdate(found_post[0].id,
{$inc: { upvotes : 1 } },
{ $push: { upvoters: req.user.href }}, function (err, post) {
if (err) return next(err);
res.json(post);
})
結果: 只有Upvotes得到增加,upvoters陣列不更新。
TRY 3:
Problem.findByIdAndUpdate(found_post[0].id,
{$set :
{$inc: { upvotes : 1 } ,
$push: { upvoters: req.user.href }}
}, function (err, post) {
if (err) return next(err);
res.json(post);
})
結果: Nothing發生
什麼,我想做的事:更新Upvoters陣列和增量upvotes由1
OMG。非常感謝! :-) 我花了2個小時試圖解決這個問題。 :-( –
)正確的語法是:'Model.findByIdAndUpdate(id,[update],[options],[callback])'。參見http://mongoosejs.com/docs/api.html#model_Model.findByIdAndUpdate –