嵌套哈希中的Mongoid'set'值

时间:2017-06-21 11:10:27

标签: mongodb mongoid5

我收到了以下文件

{ a: { b: { c1: 1, c2: 2 } } }

我想原子地将c1修改为8

我做document.set('a.b.c1': 8),但'b'的整个值更改为{c1:8}

这是我的班级

class C
  include Mongoid::Document
  field :a, type: Hash 
end

为什么会这样?

1 个答案:

答案 0 :(得分:3)

似乎是Mongoid 5中的一个错误(由Neil发现)。以下是您现在可以回避此问题的方法(直到您升级):

C.where(id: object_id).update('a.b.c1' => 5)

链接的jira票证中有另一种解决方法。