2016-07-18 10 views
0

これは不都合なロードブロッキングです。私はコレクション内の配列を更新して値を増やす必要があります。これを実現するために、私はそうのようなMongoDBの構文を使用して、コレクションにアクセスしています:クライアントからの私のアップデートが動作しないのはなぜですか?

var selectedBargain = Session.get('selectedBargain'); 

//Confirm that Session.get is successful 
console.log("SelectedID is: "+selectedBargain); 

buyList.update(selectedBargain, {$inc: {nrOfUnreadMessages: 1} }); 
buyList.update(selectedBargain, {$set: {messageToggle: 0} }); 

コンソールが正常に出力します:SelectedIDは次のとおりです。nEXHQFEt6kZ9Wzvg3

不思議なことに私はそれを実行すると更新クエリが正常に動作しますコンソール経由:

buyList.update({_id: selectedBargain}, {$inc: {nrOfUnreadMessages: 1} }); 
buyList.update({_id: selectedBargain}, {$set: {messageToggle: 0} }); 

buyList.update("nEXHQFEt6kZ9Wzvg3", {$inc: {nrOfUnreadMessages: 1} }) 

私はに私のコードを変更しようとしています

...へご利用いただけません。

誰かが私のコードでなぜ機能しないのか教えていただけますか?どこが間違っていますか?

+1

既にチェックしておく必要があります。とにかく尋ねる。コードとコンソールの両方で実行している間、同じDBに接続していますか? – KaSh

+0

@KaShよく買うリストは1つだけです。そして私はコンソールを介してのみ更新しています。 – SirBT

+0

コンソールで実行したときに正常に動作すると言えば、Chrome/Firefoxでの処理を想定していますか? '$ set'はうまく動作し、' $ inc'だけが失敗しますか、どちらも失敗しますか? JSコンソール経由でコードを実行したときと、JSコンソールを使用して実行したときの、Dev Tools/Network on ChromeのWSセクションには何が表示されますか? DDPの更新が終わるのを確認する必要があります。 – CodeChimp

答えて

0

@CodeChimp、@Kash大変申し訳ございません。私はそれを考え出した。 私はコードのシーケンスを最後まで追跡したことがないようです。また、クエリと他の関数であったが(私はここに掲載するものの範囲外)に:

buyList.update(ChatSubMessagesId, {$set: {nrOfUnreadMessages: 0} }) 
buyList.update(ChatSubMessagesId, {$set: {messageToggle:1} }) 

結果は、それが目的のコードビーイングを逆転というものであった:非常に多くの私を取っ

buyList.update({_id: selectedBargain}, {$inc: {nrOfUnreadMessages: 1} }); 
buyList.update({_id: selectedBargain}, {$set: {messageToggle: 0} }); 

その実現する時間。だから恥ずかしい!

関連する問題