2
我试图更新嵌套在MongDB文档中的散列。 我知道$push
函数为阵列和$set
完全覆盖元素,但我不能完全得到我正在寻找的行为。在MongoDB中更新嵌套文档
这里就是我试图让:
前:
{
'id' => 1234,
'evaluators' => {
'A' => { 'x' => 2, 'y' => 4 },
}
}
预计,后:
{
'id' => 1234,
'evaluators' => {
'A' => { 'x' => 2, 'y' => 4 },
'B' => { 'x' => 3, 'y' => 5 },
}
}
我试着做(用Ruby) :
coll.update({ :id => id },
{ '$set' => {
'evaluators' => {
evaluator_name => { 'adequacy' => adequacy,
'fluency' => fluency }
}
} })
但它会覆盖我evaluators
哈希的内容,我结束了:
{
'id' => 1234,
'evaluators' => {
'B' => { 'x' => 3, 'y' => 5 },
}
}
我可以做一个查询来加载整个文档到Ruby中,更改数据,并将其重新插入到数据库但我想知道是否有更好的方法,我不知道。
完美工作,谢谢! –