2012-03-04 124 views
4

我正在使用以下代碼在數組中添加一些內容並增加兩個不同的計數器。

該項正確推入數組中,並且pendingSize正確遞增。但unread不會增加。它用於增量,然後今天停止。我的mongodb集合中的unRead字段的值(在mongohq上託管)設置爲0(數字,而不是字符串)

當我查看控制檯時,看到'更新成功'。

任何線索爲什麼停止工作?

由於

Notifications.update({ "id" : theid}, { $push: { pending: notification}, $inc: { unRead : 1 }, $inc: { pendingSize: 1 }}, function(err){ 
        if(err){ 
         console.log('update failed'); 
         callback("Error in pushing." + result.members[i]); 
        } 
        else{ 
         console.log('update succes'); 
         callback("Success"); 
        } 
       }); 

回答

12

聯合的$ INC的ARGS成一個單一的嵌套的對象,這樣的:在JSON表示

$inc: { unRead : 1, pendingSize: 1 } 

對象是鍵:值,其中的鍵必須是唯一的,所以試圖爲$inc指定多個值將不起作用。

+0

作品! awsome,但對爲什麼過去工作一無所知! – guiomie 2012-03-04 01:43:29

+3

而不是增量,有沒有辦法減少?像$ dec? – 2012-06-19 11:30:06

+9

@AdrienSchuler - 只需使用$ inc加上負數 - 就像'{$ inc:-1}' – mpobrien 2012-06-20 15:54:39