0

我无法将 PutItem 请求发送到 DynamoDB。我知道这里已经回答了一个类似的问题,但似乎我这里没有空值。

我的 JSON 是:

{
    "TableName":"Unity",
    "Item":{
        "id":{
            "S":"73709359-ac78-46a0-8ca6-414393e33339"
        },
        "Session":{
            "S":"b6ba8b6d-ce27-4585-aee5-b9a2393e54da"
        },
        "Pos":{
            "X":{
                "S":"-16.8"
            },
            "Y":{
                "S":"-4.492812"
            }
        },
        "Time":{
            "S":"7/27/2017 3:21:25 PM"
        }
    }
}

错误是ValidationException:

Supplied AttributeValue is empty, must contain exactly one of the supported datatypes

有谁知道发生了什么?

4

1 回答 1

1

请尝试以下代码。我已经为属性添加了数据类型MapPos

var dynamoDB = new AWS.DynamoDB;

var params = {
    TableName: "Unity",
    Item: {
        "id": {
            S: "73709359-ac78-46a0-8ca6-414393e33339"
        },
        "Session": {
            S: "b6ba8b6d-ce27-4585-aee5-b9a2393e54da"
        },
        "Pos": {
            M: {
                "X": {
                    S: "-16.8"
                },
                "Y": {
                    S: "-4.492812"
                }
            }
        },
        "Time": {
            S: "7/27/2017 3:21:25 PM"
        }
    }
};

console.log("Adding a new item...");
dynamoDB.putItem(params, function (err, data) {
    if (err) {
        console.error("Unable to add item. Error JSON:", JSON.stringify(err,
            null, 2));
    } else {
        console.log("Added item:", JSON.stringify(data, null, 2));
    }
});
于 2017-07-27T16:12:15.263 回答