我已经开始研究dynamodb和nodeJs。我想创建一个管理面板来添加新项目,其中主键和排序键将相同。
例如:ADD URL为abc.com/admin/add/xyz/cdef/123
我已经为此创建了一个api,同时我也在使用“ put”创建新项目,但是它正在替换现有项目而不是创建新项目。
型号代码:
abc.addData= function(newData, callback){
var params = {
TableName: tableconcept,
Item: newData
}
docClient.put(params, function(err, data) {
if (err) {
console.error("Unable to create post", ". Error JSON:",
JSON.stringify(err, null, 2));
} else {
// console.log("Added item:", JSON.stringify(data, null, 2));
callback(null, data.Items);
return true;
}
});
}
路线代码:
router.post('/', function(req, res){
var data = req.body;
var newData = new Object()
newData.data = data ;
abc.addData(newData, function(err, data){
if (err){
return res.status(401).json({
status:'failed',
message: "unable to create post"
});
}
return res.status(200).json({
status:'success',
message: 'Successfully Created post.'
});
})
});
答案 0 :(得分:2)
你不能。
组合分区键和排序键是主键。根据定义,您不能重复。
您可以将时间戳连接到排序键的末尾,以使每个键唯一。
然后在检索时,使用“排序键开头”的查询将返回所有记录。