Rails + Mongoid是否可行:
Model.update_all("position=position-1")
答案 0 :(得分:2)
虽然没有直接等同于这个习惯用法(将字段设置为文档某些字段的某个函数),但有一种方法可以进行这种精确更新。
Model.collection.update({}, # find all documents
{'$inc' => {:position => -1}}, # decrement position
:multi => true) # multi-update (update all)
这是使用底层的mongodb驱动程序来完成这项工作。我不知道如何在Mongoid界面中表达这一点。
答案 1 :(得分:0)
当然可以! 没有选择(更新所有集合):
Model.update_all(obsolete: false)
或选择:
Model.where(:id.in => ids_array).update_all(obsolete: true)
答案 2 :(得分:0)
这有效:
Model.all.inc(:position, -1)