我正在使用mongodb和节点js构建应用程序。它是关于创建民意调查,我想在数据库上添加新选项,并增加每个提交的投票数。一切正常,但在第一次搜索时,它复制了选项,而不仅仅是更新投票,这里是代码:
let newChoice = function(option) { this.option = choice; this.votes = 0; }; let New = new newChoice(choice);
poll.update({_id: id}, {$addToSet: {"options": New, $exists: false}}, function(err, doc){
if (err) {
console.log(err);
}
else {
console.log(doc)
}
});
poll.update({_id: id, "options.option": choice}, {$inc: {"options.$.votes": 1}}, function(err, vote) { if (err) { console.log( err); } });
res.redirect("/show/"+id);
});
以下是我在db“options”上存储的方式:
[ { "option": " pizza", "votes": 0 }, { "option": "burger ", "votes": 0 }
知道如何防止重复吗?
答案 0 :(得分:1)
如果您option
和choice
的{{1}}已经存在
votes=0
执行此操作后,用于递增计数的更新命令将按预期工作。