Запуск собственных команд mongodb в рельсах - PullRequest
2 голосов
/ 22 марта 2012

Я использую Mongoid, но все, что мне нужно сделать, это увеличить поле, которое является целым числом. Стоит ли мне пропустить использование методов Mongoid и просто запустить метод ruby ​​drivers mongodb, чтобы увеличить значение?

Как бы я это сделал?

Ответы [ 2 ]

2 голосов
/ 22 марта 2012

Mu слишком короткий, это правильно, вы можете использовать встроенный метод mongoid #inc:

Model.inc(:field, integer)

Или вы можете получить доступ к коллекции напрямую через атрибут коллекции:

Model.collection.update(
  { query document },
  { "$inc" => { :field => value } }
)
2 голосов
/ 22 марта 2012

Почему бы не использовать метод Mongoid inc?

Model # вкл

Выполняет модификатор MongoDB $inc, который увеличивает его значение на предоставленную сумму или инициализирует его этим значением. Если поле не числовое, возникнет ошибка.

При этом model.inc(:a, 11) следует отправить обновление { $inc: { a: 11 } } прямо в MongoDB.

...