$ inc с мангустом игнорируется - PullRequest
4 голосов
/ 04 марта 2012

Я использую следующий код для добавления некоторого содержимого в массив и увеличения двух разных счетчиков.

Элемент правильно помещается в массив, а значение pendingSize правильно увеличивается.Но unRead никогда не увеличивается.Раньше увеличивалось, а сегодня остановилось.Значение поля unRead в моей коллекции mongodb (размещенного на 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");
                    }
                });

1 Ответ

12 голосов
/ 04 марта 2012

Объедините аргументы $ inc в один вложенный объект, например:

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

Объекты, представленные в JSON, представляют собой key: value, где ключи должны быть уникальными, поэтому при попытке указать несколько значений для$inc не будет работать.

...