2017-06-23 4 views
0

ダイナモDBには次の形式のドキュメントがあります。Dynamo DB - ネストされたフィールドを更新/挿入することができます

{ KEY1: "B"} "値1"、 KEY2:{sKeya: "A"、sKeyB}ダイナモDBに

は、それが(JavaScriptを介して)更新することができる直接ネストされたフィールド資料? BCOZ私はすべての値でkey2を再度更新したくありません。

例:以下のクエリを試しましたが、動作しませんでした。 "ABC"

UpdateExpression: "= #FIELD設定:値"、 ExpressionAttributeNames:{ "#FIELD": "key2.sKeya" }、 ExpressionAttributeValues:{むしろもう一つのフィールドkey2.sKeyaを作成しました ":値": "ABC"、 }

いずれかの類似の問題に直面しましたか?

答えて

0

オブジェクトキーを個別の属性名として定義する必要があります。

「key2」のエイリアスと「sKeya」のエイリアスは1つです。

const AWS = require("aws-sdk"); 
const DOCCLIENT = new AWS.DynamoDB.DocumentClient(); 
exports.handler = (event, context, callback) => { 
    let entry = { 
    TableName: "test", 
    Key: { 
     "key1": "value1", 
    }, 
    UpdateExpression: "set #parent.#child = :value", 
    ExpressionAttributeNames: { 
     "#parent": "key2", 
     "#child": "sKeya" 
    }, 
    ExpressionAttributeValues: { 
     ":value": "ABC", 
    }, 
    ReturnValues: "UPDATED_NEW" 
    }; 
    DOCCLIENT.update(entry, function(err, data) { 
    callback(null, 'done'); 
    }); 
}; 
+0

ありがとうJens! –

関連する問題