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 есть альтернативный обходной путь.

Другие вопросы по тегам