2015-04-29 46 views
0

在DynamoDB中,如果我的表中有一個散列鍵和一個範圍鍵,如何進行更新或創建如果找不到方法。下面工作,如果我有一個表,只有一個散列鍵,而不是一個哈希和範圍鍵表:DynamoDB - 更新或創建如果未找到方法

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

如果你有哈希和範圍鍵 - 你應該表明無論是在'Key' –

+0

Lashane,是不是很簡單?我只是在Key對象中指定了兩個? – ac360

+1

散列和範圍 - 鍵的兩個部分,當然你有_have_指定 –

回答

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); 
    }); 
}