2017-04-03 64 views
0

我正在用mongodb和node js.構建一個應用程序。關於創建民意調查,我想在數據庫中添加新選項並增加每個submit.all的投票數量。搜索複製它,而不是僅僅更新在這裏投票的選項是代碼:

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); 
}); 

,這裏是我存儲在數據庫「選項」的方式:

[ { "option": " pizza", "votes": 0 }, { "option": "burger ", "votes": 0 } 

任何想法如何防止重複?

回答

0

如果optionchoicevotes=0不會爲增加計預期會工作已經

db.coll.update(
    {_id: id, 'options.option': {$ne: my_choice}}, 
    {$push: {options: {'option': my_choice, 'votes': 0}}}); 

存在此操作後,您的更新命令你可以有條件地插入。

+0

它沒有工作。有鏈接測試https://dapp-gkazikas.c9users.io/show/58e22be8776fa006b8cfd48a –

+0

我的錯誤我工作很好謝謝:) –