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中,更改數據,並將其重新插入到數據庫但我想知道是否有更好的方法,我不知道。
完美工作,謝謝! –