Несколько обновлений $inc в MongoDB
Можно ли обновить один документ, передав два оператора $inc в одном документе обновления?
Например, я пытаюсь увеличить два разных поля в данном документе, используя следующий документ для обновления:
{
"$inc" : { "ViewAggregates.4d75b891842f2d3930cf7674" : 1 },
"$inc" : { "ViewAggregates.Total" : 1 }
}
Никаких ошибок не возникает, и документ обновляется, но только одно из полей увеличивается. Это как если бы сервер проигнорировал первый оператор $inc и фактически применил только второй.
Является ли это предполагаемым\правильным поведением или есть что-то, чего я не вижу?
Ответы
Ответ 1
Это интересный побочный эффект, когда ключи словаря уникальны - второй $inc
перезаписывает первый.
Тем не менее, все еще возможно увеличить несколько полей:
{
"$inc": {
"ViewAggregates.4d75b891842f2d3930cf7674" : 1,
"ViewAggregates.Total" : 1
}
}
Это работает и для многих других операторов: -)