Несколько обновлений $ inc в MongoDB - PullRequest
18 голосов
/ 09 марта 2011

Можно ли обновить один документ, передав два оператора $ inc в одном документе обновления?

Например, я пытаюсь увеличить два разных поля в данном документе, используя следующий документ обновления:

{
    "$inc" : { "ViewAggregates.4d75b891842f2d3930cf7674" : 1 },
    "$inc" : { "ViewAggregates.Total" : 1 }
}

Не выдается никаких ошибок, и документ обновляется, но только одно из полей было увеличено.Это как если бы сервер игнорировал первый оператор $ inc, и фактически был применен только второй оператор.

Это предполагаемое \ правильное поведение или я что-то упустил?

1 Ответ

46 голосов
/ 09 марта 2011

Это интересный побочный эффект уникальности ключей словаря - вторая $inc перезаписывает первую.

Однако все еще можно увеличить несколько полей:

{
    "$inc": {
        "ViewAggregates.4d75b891842f2d3930cf7674" : 1, 
        "ViewAggregates.Total" : 1
    }
}

Это работает и для многих других операторов: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...