【问题标题】:Dynamo DB - Is is possible to update/insert nested fieldDynamodb - 是否可以更新/插入嵌套字段
【发布时间】:2017-07-23 07:41:19
【问题描述】:

我在 dynamo DB 中有一个文档,格式如下。

{ 键1:“值1”, key2:{sKeya:“A”,sKeyB:“B”} }

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

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

UpdateExpression: "set #field = :value", 表达式属性名称:{ “#field”:“key2.sKeya” }, 表达式属性值:{ ":value": "ABC", }

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢 Jens!
    猜你喜欢
    • 2016-06-14
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    • 2015-03-05
    相关资源
    最近更新 更多