无法更新阵列 aws 发电机



iam 尝试更新 json array.i 在 dynamoDb.i 中有一个表,使用 put 方法成功地将 json 数据插入到 dynamo 中。

分区键 : _id , 类型 : S

这是我保存到数据库中的 json 数据。

{
    "_id": "001",
    "email": "teacher1@gmail.com",
    "class": {
        "student_list": []
    }
}

但是我无法使用密钥电子邮件student_list更新 json 数组。 我有以下代码

var AWS = require("aws-sdk");
var docClient = new AWS.DynamoDB.DocumentClient();
var params = {
    TableName: "testTable1",
    Key: {
        "email": "teacher1@gmail.com",
    },
    UpdateExpression: "set class.student_list = list_append (class.student_list, :studentEmail)",
    ExpressionAttributeValues: {
        ":studentEmail": "manaf@gmail.com"
    },
    ReturnValues: "UPDATED_NEW"
};
docClient.update(params, function (err, data) {
    if (err) {
        console.error("Unable to update item. Error JSON:", JSON.stringify(err, null, 2));
    } else {
        console.log("UpdateItem succeeded:", JSON.stringify(data, null, 2));
    }
});

但是我收到了这样的错误消息

Unable to update item. Error JSON: {
  "message": "Invalid UpdateExpression: Incorrect operand type for operator or function; operator or function: list_append, operand type: S",
  "code": "ValidationException",
  "time": "2016-07-18T14:31:44.978Z",
  "requestId": "378NSB5RVB1TNI0PB1Q3OH67V3VV4KQNSO5AEMVJF66Q9ASUAAJG",
  "statusCode": 400,
  "retryable": false,
  "retryDelay": 0
}

与此相关的实际问题是什么?

从文档中:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html

操作数类型必须包含在列表中。

"新元素必须包含在列表中,例如,要将 2 添加到列表中,操作数将是 [2]"

相关内容

  • 没有找到相关文章

最新更新