[英]AWS Dynamodb put a list of Objects (javascript)
I've a list of Objects: [[id,name,latitude,longitude],[id,name,latitude,longitude] ] etc.. 我有一个对象列表:[[id,名称,纬度,经度],[id,名称,纬度,经度]]等。
I would like to push the list to a dynamodb table named Stations. 我想将列表推送到名为Stations的dynamodb表中。 This is what i did: 这就是我所做的:
var AWS = require("aws-sdk");
var DynamoDB = new AWS.DynamoDB.DocumentClient();
exports.handler = function(event, context) {
function Station(id, name, latitude, longitude){
this.id = id;
this.name = name;
this.latitude = latitude;
this.longitude = longitude;
}
var stations = new Array();
for(var i = 0; i < event.length;i++){
stations[i] = new Station(event[i][0],event[i][1],event[i]
[2],event[i][3]);
}
var params = {
TableName: "Stations",
Item: stations
};
DynamoDB.put(params, function (err) {
if (err) {
console.log("ERROR :"+ err)
}
console.log("SUCCESS DynamoDB PUT")
});
} }
Error i get: 错误我得到:
:ValidationException: One or more parameter values were invalid: Missing the key id in the item :ValidationException:一个或多个参数值无效:项中缺少键ID
Thanks for help! 感谢帮助!
When you are putting an item to a DynamoDB table, you need to include the Hash Key and Sort Key(If available) in the parameters to create or update. 将项目放入DynamoDB表时,需要在参数中包括哈希键和排序键(如果有)以创建或更新。
To put a list of items, you cannot use DynamoDB.put
method. 要放置项目列表,不能使用DynamoDB.put
方法。 Instead you need to use DynamoDB.batchWrite
. 相反,您需要使用DynamoDB.batchWrite
。
var AWS = require("aws-sdk");
var DynamoDB = new AWS.DynamoDB.DocumentClient();
exports.handler = function(event, context) {
function Station(id, name, latitude, longitude){
this.PutRequest = {
Item: {
id: id,
name: name,
latitude: latitude,
longitude: longitude
}
};
}
var stations = new Array();
for(var i = 0; i < event.length;i++){
stations[i] = new Station(event[i][0],event[i][1],event[i]
[2],event[i][3]);
}
var params = {
RequestItems: {
'Stations': stations
}
};
var documentClient = new AWS.DynamoDB.DocumentClient();
documentClient.batchWrite(params, function(err, data) {
if (err) console.log(err);
else console.log(data);
});
Reference: AWS DynamoDB Document Client JavaScript SDK 参考: AWS DynamoDB文档客户端JavaScript SDK
Note: Assuming id, name, latitude or longitude attribute contains the hash key and sort key(If available). 注意:假设ID,名称,纬度或经度属性包含哈希键和排序键(如果可用)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.