2016-07-18 84 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("nEXHQFEt6kZ9Wzvg3", {$inc: {nrOfUnreadMessages: 1} }) 

我試圖改變我的代碼:

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

...無濟於事。

有人能告訴我爲什麼它不工作在我的代碼?我哪裏錯了?

+1

您必須已經檢查。但無論如何都要問。你確定你在代碼和控制檯中運行時連接到同一個數據庫嗎? – KaSh

+0

@KaSh我只有一個buyList。而且我只能通過控制檯進行更新。 – SirBT

+0

當您在控制檯中運行它時說它成功運行,我認爲Chrome/Firefox中的意思是? '$ set'工作,只有'$ inc'失敗,還是都失敗了?您在運行代碼時與通過JS控制檯運行時的開發工具/網絡中的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} }); 

它採取了我這麼多幾小時才能實現。好尷尬!

相關問題