2015-09-20 106 views
0

我有一個數據結構如下所示:追加到嵌套陣列中rethinkdb

{ 
    id: blah-blah-blah, 
    settings: { 
       stuff: {}, 
       other_stuff: {}, 
       provided: [] 
    }, 
    .... 
} 

我需要更新各種物品處理動態生成的密鑰和/或值。更新嵌套對象很容易。舉例來說,更新內部settings.stuff一些鍵I可以如下創建一個更新對象:

update_object = r.object('settings', r.object('stuff', r.object(key, value))) 

然後運行

r.db(foo).table(bar).get(woot).update(update_object).run() 

但附加一些動態生成的值到嵌套陣列是超越我。我收集的東西沿線︰

r.db(foo).table(bar).get(woot).update(function(document) { 
    return {"settings": document("settings")....append(value) 

但我在如何填補最後一行中的空白的損失。

回答

3

OK,我想通了:

r.db(foo).table(bar).get(woot) 
    .update({'settings': {'provided': r.row('settings')('provided').append(value)}});