Dynamo DB - 可以更新/插入嵌套字段

时间:2017-06-23 16:52:27

标签: amazon-web-services amazon-dynamodb nosql

我在Dynamo DB中有一个文件,格式如下。

{   key1:" value1",   key2:{sKeya:" A",sKeyB:" B" } }

是否可以在dynamo DB文档中更新(通过JavaScript)直接嵌套字段? BCOZ我不想再次使用所有值更新key2。

示例:我尝试了以下查询,但没有成功。它创建了另一个字段key2.sKeya:" ABC"

UpdateExpression:"设置#field =:value",             ExpressionAttributeNames:{                 " #field":" key2.sKeya"             },             ExpressionAttributeValues:{                 ":价值":" ABC",             }

有没有人遇到类似的问题?

1 个答案:

答案 0 :(得分:2)

您需要将对象键定义为单独的属性名称。

“key2”的别名和“sKeya”的别名。

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');
  });
};