更新语句rethinkdb

时间:2016-03-07 15:07:20

标签: rethinkdb nosql

我在db中有以下json结构:

{   
   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 个答案:

答案 0 :(得分: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})
      }
    }};
  })

或者,或许可以考虑将数据格式更改为更易于使用的内容 - 具体取决于您的使用情况。