繁体   English   中英

在发电机数据库中将 object 添加到 map

[英]add object to map in dynamo db

我试图在发电机数据库中向现有的 MAP object 添加一个元素,但是由于某种原因,当我运行它时,我添加了一个新列。 这个查询有什么问题? 我的表结构是:

topic      questions
-----      ----------
Dynamo     { "what is Dynamo?" : { "S" : "x" }  }

代码:

var params = {
  TableName: TABLE_NAME,
  Key: { topic: topic },
  UpdateExpression: "ADD #qq = :ans",
  ExpressionAttributeNames: {
    "#qq": qq,
  },
  ExpressionAttributeValues: {
    ":ans": { S: ans },
  },
};
let res = await docClient.update(params).promise();

ADD用于数字和设置,不适用于 MAP。

要将 append 元素转换为 MAP,我们需要使用SET

const TABLE_NAME = "test";
const topic = "Dynamo";
const qq = "what is Dynamo?";
const answer = "its a nosql database";
docClient.update(
  {
    TableName: TABLE_NAME,
    Key: {
      topic: topic,
    },
    UpdateExpression: "set questions.#qq = :answer",
    ExpressionAttributeValues: {
      ":answer": answer,
    },
    ExpressionAttributeNames: {
      "#qq": qq,
    },
  },
  function (error, result) {
    console.log("error", error, "result", result);
  }
);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM