node.js - DynamoDB 异常 - 提供的 AttributeValue 设置了多个数据类型
问题描述
我正在尝试在 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);
}
}
);
例外 :
错误 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);
}
}
);
推荐阅读
- c - 通过引脚连接时,USB 端口无法识别微控制器
- vba - MS Access VBA 动态显示来自 URL 的图片
- android - 如何添加secp256k1?
- python - 具有周期性边界条件的numpy数组的边界框(包装)
- python - 如何在 django 中使用自定义选择制作 QuerySet
- shiny - Shinydashboard:让服务员包等到完全渲染地块
- reactjs - 是否可以同时拥有可排序的网格和网格之间的移动对象?
- xamarin - 专注于android上listview中的条目
- javascript - 从字符串中删除以某个字符开头的单词
- angular - 角度 7 中的文件验证