Mongodb $ addToSet重复

时间:2017-04-03 10:37:13

标签: mongodb mongoose

我正在使用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 } 

知道如何防止重复吗?

1 个答案:

答案 0 :(得分:1)

如果您optionchoice的{​​{1}}已经存在

,则可以有条件地插入

votes=0

执行此操作后,用于递增计数的更新命令将按预期工作。