Могу ли я сделать базовую математику в обновлении Монго, используя свойства объекта? - PullRequest
3 голосов
/ 11 января 2012

В SQL вы можете сделать что-то вроде:

UPDATE test SET a = b + c

Мне интересно, есть ли что-то, что я могу сделать, похожее в MongoDB.Например что-то вроде:

db.test.update({},{$set: {a: b + c}})

Однако, когда я пытаюсь это сказать, что b и c не определены (что имеет смысл).Есть ли способ, которым я могу сказать Монго использовать значение полей объекта, который он обновляет?Или мне всегда нужно делать это в два этапа - сначала получить поля, а затем использовать их для построения соответствующего оператора обновления.

1 Ответ

5 голосов
/ 11 января 2012

Вы не можете сделать это с MongoDB в операции обновления. Вам нужно было бы использовать что-то вроде map / lower или db.eval , чтобы выполнить это, и даже тогда вы все равно будете технически выполнять два запроса, один для поиска и один обновить.

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