例如,
{
id:"monday",
names:[
{one:"white", two:"pink"},
{uno:"blanco", dos:"rosado"}
]
}
您如何将white
更改为black
?
到目前为止,我有这个:
r.db.table.get('monday').update({
names: r.row("names").nth(0)
})
指定names
的第0个索引,但不确定如何进一步指定one
字段然后更改它。
答案 0 :(得分:1)
也许您的数据存储在名为obj
的对象中;
var obj = {...}
你可以做到这一点:
obj.names[0].one = "black";
我实际上尝试使用firebug没问题。 数组中的每个元素都是独立的,所以不用担心。
答案 1 :(得分:1)
到目前为止,您所拥有的内容非常正确,但您将names
替换为其第一个子对象(我猜您已经看到了该结果)。
您只需使用merge
来更改子对象,并使用changeAt
names
将更改后的子对象放入数组中,如下所示: / p>
r.db.table.get('monday').update({
names: r.row('names').changeAt(0, r.row('names').nth(0).merge({one: 'black'}))
})
希望这有帮助!
答案 2 :(得分:0)
首先,您应该使用replace
代替update
。
names
字段的记录。merge
使用新的names
(从中移除第一个元素,在第一个位置添加我们将white
替换为black
的{{1}} one
} field)这样的事情:
r.db.table.get('monday').replace(function(doc){
return doc.without({names: true}). merge({
names: doc("names").deleteAt(0).prepend(doc("names").nth(0).merge({
one : "black"
}))
})
})