Подтвердить что ты не робот

Несколько обновлений $inc в MongoDB

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

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

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

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

Является ли это предполагаемым\правильным поведением или есть что-то, чего я не вижу?

4b9b3361

Ответ 1

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

Тем не менее, все еще возможно увеличить несколько полей:

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

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