gpt4 book ai didi

javascript - 在 dynamodb 中使用 batchWriteItem

转载 作者:行者123 更新时间:2023-11-29 17:43:19 25 4
gpt4 key购买 nike

我的 dynamo 数据库中有两个表,一个是候选表,另一个是用户表我想在 dynamo 数据库中使用 batchWriteItem 以便将数据添加到表中。

我格式化后的查询如下

var user = {
userid: usrid,
role: 'candidate',
password: vucrypt.encryptpass(pass)
};

var canduser = {
fname: req.body.fname,
lname: req.body.lname,
location: req.body.location,
phone: req.body.phone,
ccode: req.body.ccode,
grad: req.body.grad,
pgrad: req.body.pgrad,
ograd: req.body.ograd,
experience: exp,
linkedin: req.body.linkedin,
terms: tandc
};
canduser = vutools.fixcanduser(canduser);
canduser.userid = usrid;

var writes = {
'users': [{put: user}],
'candidate': [{put: canduser}],
};

但如果我使用
dynamodb.batchWriteItem(写入,函数(错误,regdata){
}

它以错误结束。我怎样才能写出正确的查询?我得到的错误是这个。

MultipleValidationErrors: There were 3 validation errors:
* MissingRequiredParameter: Missing required key 'RequestItems' in params
* UnexpectedParameter: Unexpected key 'users' found in params
* UnexpectedParameter: Unexpected key 'candidate' found in params

最佳答案

要在DynamoDB中批量写入,数据必须以dynamodb的方式进行格式化。如果你想用标准的 json 来做,那就去 documentclient。您在下面有一个示例,请记住,dynamobb batchwrite 仅根据请求接受 25 个元素的 mawimum。

所以根据doc你必须有:

<强>1。属性

"ATTRIBUTE_1": { "S": "ATTRIBUTE_1_VALUE" }

根据你的例子:

"role": {"S":"candidate"}

<强>2。元素

每个项目必须有这种格式

      PutRequest: {
Item: {
...,
"ATTRIBUTE_1": { "S": "ATTRIBUTE_1_VALUE" },
...
}
}

<强>3。要添加的项目数组

创建一个不超过 25 个元素的项目数组(这是 batchwrite 的 dynamodb 限制)

<强>4。您的请求参数

放在一起

var params = {
RequestItems: {
"TABLE_NAME": [
//the array you just created in step 3
]
}
}

<强>5。要求

ddb.batchWriteItem(params, function(err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data);
}
});

更新

你的例子将是这样的:

var params = {
"RequestItems": {
"TABLE_NAME": [
{
"PutRequest": {
Item: {
"userid": { "N": "usrid" },
"role": { "S": 'candidate' },
"password": { "S": vucrypt.encryptpass(pass) }
}
}
}
],
"TABLE_NAME2": [
{
"PutRequest": {
Item: {
"fname": {
"S": req.body.fname
},
"lname": {
"S": req.body.lname
},
"location": {
"S": req.body.location
},
"phone": {
"S": req.body.phone
},
"ccode": {
"S": req.body.ccode
},
"grad": {
"S": req.body.grad
},
"pgrad": {
"S": req.body.pgrad
},
"ograd": {
"S": req.body.ograd
},
"experience": {
"S": exp
},
"linkedin": {
"S": req.body.linkedin
},
"terms": {
"S": tandc
}
}
}
}
]
}
}

关于javascript - 在 dynamodb 中使用 batchWriteItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51702342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com