Rails + mongoid: update_all ("position = position-1")? - PullRequest
1 голос
/ 04 февраля 2012

Возможно ли это с Rails + Mongoid:

Model.update_all("position=position-1")

Ответы [ 3 ]

2 голосов
/ 04 февраля 2012

Хотя нет прямого эквивалента этой идиоме (установите поле для некоторой функции некоторых полей документа), есть способ сделать это точное обновление.Водитель, чтобы сделать работу.Я не знаю, как выразить это в интерфейсе Mongoid.

0 голосов
/ 05 ноября 2013

Это работает:

Model.all.inc(:position, -1)  
0 голосов
/ 12 июня 2013

Конечно, вы можете!Без выбора (обновить все коллекции):

Model.update_all(obsolete: false)

или с выбором:

Model.where(:id.in => ids_array).update_all(obsolete: true)
...