Mongoid 'set' значение во вложенном хэше
Я получил следующий документ
{ a: { b: { c1: 1, c2: 2 } } }
Я хочу атомарно изменить только с1 до 8
я делаю document.set('a.b.c1': 8)
, но все значение "b" меняется на {c1:8}
,
это мой класс
class C
include Mongoid::Document
field :a, type: Hash
end
это почему?
1 ответ
Решение
Кажется, это ошибка в Mongoid 5 (как нашел Нил). Вот как вы можете обойти это пока (пока не обновитесь):
C.where(id: object_id).update('a.b.c1' => 5)
В связанном билете jira есть альтернативный обходной путь.