2017-11-19 25 views
0

これは機能しません。これを行う別の方法がありますか? cordはマップを追加するリストです。DynamoDB:Node.jsを使用してリストに要素を追加する

var params5 = { 
    TableName: 'rides', 
    Key: { 
    'rid': data2.Items[0].rid 
    }, 
    UpdateExpression: 'add cord :x', 
    ExpressionAttributeValues: { 
    ':x': [{date: secondStartDate.toString(), latitude: xcorpassed, longitude: ycorpassed}]  
    }, 
    ReturnValues: 'UPDATED_NEW' 
} 
docClient.update(params5, function (err5, data5) { ... } 

答えて

0

代わりのADD

var params = { 
    TableName: "rides", 
    Key: { 
    "rid": data2.Items[0].rid 
    }, 
    UpdateExpression: "SET #c = list_append(#c, :vals)", 
    ExpressionAttributeNames: { 
    "#c": "cord" 
    }, 
    ExpressionAttributeValues: { 
    ":vals": [{date: secondStartDate.toString(), latitude: xcorpassed, longitude: ycorpassed}]  
    }, 
    ReturnValues: "UPDATED_NEW" 
} 

docClient.update(params, function (err, data) { 
    if (err) console.log(err); 
    else console.log(data); 
} 
0

エラーコードを見ることなく、それはあなたがsetからaddを変更する必要がありますし、=記号を忘れていないように見えるがスローされます。

list_append関数名は大文字と小文字が区別されます)あなたはlist_append機能(SETではなくADDを使用して一般的には、AWS recommends)でSETを使用することができ

var params5 = { 
     TableName: 'rides', 
     Key: { 
     'rid': data2.Items[0].rid 
     }, 
     UpdateExpression: 'set cord = :x', 
     ExpressionAttributeValues: { 
     ':x': [{date: secondStartDate.toString(), latitude: xcorpassed, longitude: ycorpassed}]  
     }, 
     ReturnValues: 'UPDATED_NEW' 
    } 
    docClient.update(params5, function (err5, data5) { 
関連する問題