在dynamodb使用batchWriteItem
我在我的发电机分贝一个两个表是候选表,另一种是用户表我想用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.bodyode,
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(writes, function(err, 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 batchwrite,数据必须在dynamodb方式进行格式化。如果你想要做它在标准的JSON,去为documentclient。你有一个例子如下,有记住dynamobb batchwrite只要求接受25元的mawimum。
所以要根据doc您必须:
1.属性
“ATTRIBUTE_1”:{ “S”: “ATTRIBUTE_1_VALUE”}
根据你的例子:
“角色”:{ “S”: “候选人”}
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);
}
});
UPDATE
你的榜样将是这样的:
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.bodyode
},
"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
}
}
}
}
]
}
}
在dynamodb使用batchWriteItem
我在我的发电机分贝一个两个表是候选表,另一种是用户表我想用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.bodyode,
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(writes, function(err, 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 batchwrite,数据必须在dynamodb方式进行格式化。如果你想要做它在标准的JSON,去为documentclient。你有一个例子如下,有记住dynamobb batchwrite只要求接受25元的mawimum。
所以要根据doc您必须:
1.属性
“ATTRIBUTE_1”:{ “S”: “ATTRIBUTE_1_VALUE”}
根据你的例子:
“角色”:{ “S”: “候选人”}
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);
}
});
UPDATE
你的榜样将是这样的:
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.bodyode
},
"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
}
}
}
}
]
}
}