Mongodb Mongoid';设置';嵌套哈希中的值
我得到了以下文件Mongodb Mongoid';设置';嵌套哈希中的值,mongodb,mongoid5,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 这是为什么?这似乎是Mongoid 5中的一个bug(由Neil发现)。以下是您如何暂时避开此问题(直到升级): 链接的jira票证中有一个替代解决方
{ 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中的一个bug(由Neil发现)。以下是您如何暂时避开此问题(直到升级):
链接的jira票证中有一个替代解决方案。显示如何定义模型的代码。打开日志记录并查看对MongoDB的实际请求如何。这篇文章似乎有一个合理的指示:@NeilLunn:是的,我复制了。它确实执行
“$set”=>{“a”=>{“b”=>{“c1”=>3}}
。奇怪的问题被标记为Mongoid 5你也用过吗@SergioTulentsev?哎哟!错误确认
C.where(id: object_id).update('a.b.c1' => 5)