DynamoDB - 更新或创建(如果未找到)方法

时间:2015-04-29 00:53:48

标签: javascript node.js amazon-dynamodb

在DynamoDB中,如果我的表中有哈希键和范围键,如何进行更新或创建if not found方法。如果我有一个只有一个哈希键的表,但是没有带有哈希和范围键的表,则下面有效:

 var save = function(user_id, store_id, callback){

    var DOC = require('dynamodb-doc'),
    docClient = new DOC.DynamoDB();

    var params = {
        TableName: 'stores',
        ReturnValues: 'NONE',
        Key: {
            'user_id': user_id
        },
        ConditionExpression: "#a = :store_id_val",
        UpdateExpression: 'SET #a = :store_id_val',
        ExpressionAttributeNames: {
            '#a': 'store_id'
        },
        ExpressionAttributeValues: {
            ':store_id_val': store_id
        }
    };

    // Save DynamoDB Document
    docClient.updateItem(params, function(error, response) {
        return callback(error, response);
    });
  }

1 个答案:

答案 0 :(得分:0)

很简单。我只需要在Key参数中指定哈希和范围键。然后我就可以逃脱这个:

var save = function(user_id, store_id, callback) {

    var DOC = require('dynamodb-doc'),
        docClient = new DOC.DynamoDB();

    var params = {
        TableName: 'stores',
        ReturnValues: 'NONE',
        Key: {
            'user_id': user_id,
            'store_id': store_id
        }
    };

    // Save DynamoDB Document
    docClient.updateItem(params, function(error, response) {
        return callback(error, response);
    });
}