2012-03-04 68 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