2017-02-23 3 views
2

RethinkDBの配列の更新に関する質問があります。私のJSON構造は以下のようになります。ここでReSQLを使用してRethinkDBでネストされた配列を更新する方法

{ 
    "LOG_EVENT": { 
     "ATTRIBUTES": [ 
      { 
       "ATTRIBUTE1": "TYPE", 
       "VALUE": "ORDER" 
      }, 
      { 
       "ATTRIBUTE2": "NUMBER", 
       "VALUE": "1234567" 
      } 
     ], 
     "EVENT_CODE": [ 
      { 
       "CODE_NAME": "EVENT_SAVED", 
       "EVENT_TIMESTAMP": "2015-08-18T00:58:12.421+08:00"     
      } 

     ], 
     "MSG_HEADER": { 
      "BUSINESS_OBJ_TYPE": "order", 
      "MSG_ID": "f79a672b-f15e-459d-a29b-725486d6401f", 
      "DESTINATIONS": "3"    
     } 
    }, 
    "id": "0de3117e-12dd-4d10-a464-dff391a4513f" 
} 

、私は

{ 
    "CODE_NAME": "MESSAGE_DELIVERED_TO_APP2", 
    "EVENT_TIMESTAMP": "2015-08-18T12:58:12.421+08:00"    
} 

私のイベントコード内で新しいイベントを更新しようとしています私の最後のJSONは

{ 
    "LOG_EVENT": { 
     "ATTRIBUTES": [ 
      { 
       "ATTRIBUTE1": "TYPE", 
       "VALUE": "ORDER" 
      }, 
      { 
       "ATTRIBUTE2": "NUMBER", 
       "VALUE": "1234567" 
      } 
     ], 
     "EVENT_CODE": [ 
      { 
       "CODE_NAME": "EVENT_SAVED", 
       "EVENT_TIMESTAMP": "2015-08-18T00:58:12.421+08:00" 
      }, 
      { 
       "CODE_NAME": "MESSAGE_DELIVERED_TO_APP2", 
       "EVENT_TIMESTAMP": "2015-08-18T12:58:12.421+08:00" 
      } 
     ], 
     "MSG_HEADER": { 
      "BUSINESS_OBJ_TYPE": "order", 
      "MSG_ID": "f79a672b-f15e-459d-a29b-725486d6401f", 
      "DESTINATIONS": "3" 
     } 
    }, 
    "id": "0de3117e-12dd-4d10-a464-dff391a4513f" 
} 

あなたはReQL問合せに助けることができ、以下のようになります。 ?

は以下試みたが、ここでも

r.db("test").table("test1").get("0de3117e-12dd-4d10-a464-dff391a4513f")("LOG_EVENT")('EVENT_CODE').update(function(row) { 
    return {EVENT_CODE: row('EVENT_CODE').map(function(d) { 
    return r.branch(d.append({ 
    "CODE_NAME": "MESSAGE_DELIVERED_TO_APP2", 
    "EVENT_TIMESTAMP": "2015-08-18T00:58:12.421+08:00"  
    }), d) 
     }) 
}}) 

答えて

0

が動作していない配列

  r.db('DB').table('LOGS') 
    .get('ID') 
     .update({ 
      EVENT_CODE: r.row('EVENT_CODE').changeAt(1, 
      r.row('EVENT_CODE').nth(1).merge({"CODE_NAME": "MESSAGE_DELIVERED_TO_APP2"})) 
      }) 
内に存在するオブジェクトのネストされたフィールドを更新するコードであります
関連する問題