2014-06-16 82 views
0

這是我的功能,它不會更新NumStat集合文檔的計數。MeteorJS無法更新文檔的計數

Meteor.methods({ 
addDocument: function(array){ 
    object = { 
     numbers : array, 
     date : new Date() 
    } 
    NumArray.insert(object); 

    for (var i = 0; i < array.length; i++) { 
     NumStat.update({num : array[i]},{$inc : {count : 1}}); 
     console.log(NumStat.findOne({num : array[i]})); // this throws undefined 
    } 
} 
}); 

,如果我這樣做: NumStat.update({NUM:2},{$ INC:{數:1}}); 它完美的作品,但不像我提出的例子!?這種方法有什麼問題,我如何得到我想要的結果?增加NumStat文件查找數組的數量[item]

解決方案: 這是我的不好,因爲數組上的值是一個字符串,數據庫上的num值是一個int。解決方案是使用parseInt(array [i])。作爲@Dewfy提到的更好的解決方案將使用findAndModify。

回答

1

我不知道JavaScript實現的蒙戈所有,但:

  1. update其他方言(Java或C#)不會創建記錄,但更新現有的一個,所以審查save
  2. 使用
  3. 在Mongo中有一個'write concern'的概念 - 這可能會延遲真實寫作。確保您處理已確認。

p.s.而不是循環使用findAndModify與指定數組的ID修改 - 那麼你可以避免循環,並將修改邏輯放置到服務器端

+0

非常感謝您的fundAndMdofiy函數,我打算使用它。至於數組[我]這是我的壞數組的項目是字符串和數據庫上的數值是一個int –