2016-07-20 2 views
0

사용자 비디오를 저장하는 dynamodb 테이블이 있습니다. 이 같은 구조있어 :DynamoDb에서 동일한 해시 키로 여러 항목 업데이트

{ 
    "userid": 324234234234234234, // Hash key 
    "videoid": 298374982364723648 // Range key 
    "user": { 
     "username": "mario" 
    } 
} 

내가 특정 사용자의 모든 동영상의 이름을 업데이트 할. 간단한 업데이트로 가능합니다 또는 은 전체 테이블번을 한 번만 업데이트합니다.?

var params = { 
    TableName: DDB_TABLE_SCENE, 
    Key: { 
     userid: userid, 
    }, 
    UpdateExpression: "SET username = :username", 
    ExpressionAttributeValues: { ":username": username }, 
    ReturnValues: "ALL_NEW", 
    ConditionExpression: 'attribute_exists (userid)' 
}; 
docClient.update(params, function(err, data) { 
    if (err) fn(err, null); 
    else fn(err, data.Attributes.username); 
}); 

다음 오류가 발생합니다. 범위 키가 필요합니다.

ValidationException: The provided key element does not match the schema 

답변

1

Dynamo는 여러 항목 (즉, 한 번에 두 개 이상의 항목)에 대한 쓰기 작업을 지원하지 않습니다. 먼저 테이블을 스캔/쿼리하거나 업데이트하려는 모든 항목의 목록을 생성 한 다음 하나씩 업데이트해야합니다.

Dynamo는 일괄 처리 API를 제공하지만 한 번에 25 개씩 일괄 적으로 그룹화하는 방법입니다. 당신이 달성하고자하는 것처럼 다중 아이템 업데이트를위한 프록시는 아닙니다.