我正在DynamoDB中尝试批量写入,但是失败。
TableName - td_notes_learn
PK user_id - String
SK datetime - Number
我的尝试:
const AWS = require("aws-sdk");
AWS.config.update({ region: "us-east-1" });
const docClient = new AWS.DynamoDB.DocumentClient();
docClient.batchWrite(
{
RequestItems: {
td_notes_learn: [
{
DeleteRequest: {
Key: {
user_id: "D",
datetime: 5
}
},
PutRequest: {
Item: {
user_id: "G",
datetime: 5,
content: "HELLO WORLD"
}
}
}
]
}
},
(err, data) => {
if (err) {
console.log("Error found" + err);
} else {
console.log(data);
}
}
);
Exception:
错误foundValidationException:提供的AttributeValue大于一种数据类型集,必须完全包含一种受支持的数据类型
[另外,在同一代码中,如果我通过注释另一个来单独运行DeleterRequest
和PutRequest
请求,则该代码可以正常工作,仅当我一起运行时才会发生错误。请指导我。
看起来所有请求都必须是一个单独的json对象,而我的代码中的问题是所有请求都在一个json对象中。下面是工作代码。
docClient.batchWrite(
{
RequestItems: {
td_notes_learn: [
{
DeleteRequest: {
Key: {
user_id: "D",
datetime: 5
}
}
}, // WAS MISSING
{ // WAS MISSING
PutRequest: {
Item: {
user_id: "G",
datetime: 5,
content: "HELLO WORLD"
}
}
} // WAS MISSING
]
}
},
(err, data) => {
if (err) {
console.log("Error found" + err);
} else {
console.log(data);
}
}
);