如何使用相同的主键和排序键在dynamodb中添加新项目

时间:2019-01-25 07:39:10

标签: node.js amazon-dynamodb

我已经开始研究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.'          
    });      

})
});

1 个答案:

答案 0 :(得分:2)

你不能。

组合分区键和排序键是主键。根据定义,您不能重复。

您可以将时间戳连接到排序键的末尾,以使每个键唯一。

然后在检索时,使用“排序键开头”的查询将返回所有记录。