2017-04-03 4 views
0

私はmongodbとノードjs.Isを使ってアプリケーションを構築しています。私は投票を作成しています。データベースに新しいオプションを追加し、各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

あなたchoicevotes=0optionが期待通りに動作する回数をインクリメントするために、この操作の後、既に

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

あなたのupdateコマンドを存在しない場合は、条件付きで挿入することができます。

+0

それは動作しませんでした。テストするリンクはありますかhttps://dapp-gkazikas.c9users.io/show/58e22be8776fa006b8cfd48a –

+0

私の間違い私は素晴らしい作品ありがとう:) –

関連する問題