2016-03-07 134 views
0

,我有以下的分贝JSON的结构:Update语句rethinkdb

{ 
    id: "dlsadas", 
    code : { 
     "312-43-1-3-v-d" : { 
      contents : [ 
       { 
       "id" : 1 
       }, 
       { 
       "id" : 2 
       } 
      ] 
     }, 
     "dbhwu-0dw-dw-dn" : { 
      contents : [ 
       { 
       "id" : 5 
       }, 
       { 
       "id" : 6 
       } 
      ] 
     } 
    } 
} 

我的问题是:
我如何写一个更新语句,因此内容阵列的关键312-43-1 -3-vd获得追加对象{id:8}

从我读我必须做的:

r.table('table').filter(...).update({code : {key: r.row(contents).append({id:8}) }}) 

,但我不能。 这可以实现吗?

回答

1

尝试

r.table('table') 
    .get('dlsadas') 
    .update(function(doc) { 
    return {code: { 
     'dbhwu-0dw-dw-dn': { 
     contents: doc('code')('dbhwu-0dw-dw-dn')('contents').append({id:8}) 
     } 
    }}; 
    }) 

或者,也许考虑改变你的数据格式的东西更容易使用 - 这取决于你的使用情况。

+0

现在将尝试它 – Razvan

+0

尝试,但所述 'dbhwu-0dw-DW-DN' 是动态 ,如果我做代码[dynamic_key] [ “内容”] = DOC(代码)(dynamic_key)它只崩溃 – Razvan

+0

感谢,有效 – Razvan