>我得到了以下文档
{ 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
为什么?
这似乎是Mongoid 5中的一个错误(由Neil发现(。以下是您现在可以避开此问题的方法(直到您升级(:
C.where(id: object_id).update('a.b.c1' => 5)
链接的 jira 票证中还有另一种解决方法。