데이터 쓰기
{ TableName: "Music", Item: { "Artist":"No One You Know", "SongTitle":"Call Me Today", "AlbumTitle":"Somewhat Famous", "Year": 2015, "Price": 2.14, "Genre": "Country", "Tags": { "Composers": [ "Smith", "Jones", "Davis" ], "LengthInSeconds": 214 } } } | cs |
SQL 의 INSERT INTO 와 같은 역할이다.
Item 을 추가하려면 PutItem 작업에 위와 같은 파라미터를 전달한다.
복수의 데이터를 BatchWriteItem 작업으로 한번에 추가하는 것도 가능하다.
- TableName – 데이터를 추가할 Table 이름.
- Item - Primary Key 이외의 Attribute 는 데이터 타입과 함께 자동 생성된다.
데이터 읽기
{ TableName: "Music", Key: { "Artist": "No One You Know", "SongTitle": "Call Me Today" }, "ProjectionExpression": "AlbumTitle, Year, Price" } | cs |
단일 Item 을 읽기 위해 GetItem 작업에 Table 이름과 Primary Key 를 전달한다.
기본적으로 해당 Item 의 모든 Attributes 를 가져오지만 ProjectionExpression 파라미터로 특정 Attributes 만 반환할 수 있다.
{ TableName: "Music", KeyConditionExpression: "Artist = :a and contains(SongTitle, :t)", FilterExpression: "price < :p", ExpressionAttributeValues: { ":a": "No One You Know", ":t": "Today", ":p": 1.00 } } | cs |
Query 작업으로 조건을 지정하여 여러 Item 을 읽을 수도 있다.
KeyConditionExpression 에 Primary key 를 지정하고 (sort key 에 범위 지정 가능),
ExpressionAttributeValues 는 Expression 파라미터들에 바인드 변수를 사용하여 값을 전달한다.
FilterExpression 으로 조건을 지정하여 일부 Items 을 결과에서 제거할 수 있다.
{ TableName: "Music", ProjectionExpression: "Artist, Title" } | cs |
Scan 작업으로 Table 의 전에 Item 을 읽거나 ProjectionExpression 에 Attribute 는 지정하여, 결과에서 제외시킬 수 있다.
Index 에 대하여 Query 나 Scan 을 할 경우에는 IndexName 파라미터만 추가하면 된다.
데이터 수정
{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET RecordLabel = :label", ConditionExpression: "Price >= :p", ExpressionAttributeValues: { ":label": "Global Records", ":p": 2.00 } } | cs |
위와 같이 UpdateItem 작업에 파라미터를 전달하여 단일 Attribute 를 수정할 수 있다.
UpdateItem 은 개별 Attribute 를 교체하는 것이 아니라 Item 전체를 교체한다.
해당하는 Primary key 가 존재하면 Attribute 를 업데이트 하고, 존재하지 않으면 이 Item 을 추가한다.
ConditionExpression 에 조건을 설정하여 true 일 때만 수정을 수행하도록 할 수도 있다.
또 Number 데이터 타입의 Attribute 에서 숫자 증감도 지원한다.
{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET Plays = Plays + :incr", ExpressionAttributeValues: { ":incr": 1 }, ReturnValues: "UPDATED_NEW" } | cs |
위 예에서 ReturnValues 파라미터의 UPDATED_NEW 는 업데이트된 Attribute 의 새 값을 반환한다.
데이터 삭제
{ TableName: "Music", Key: { Artist: "The Acme Band", SongTitle: "Look Out, World" }, ConditionExpression: "attribute_exists(RecordLabel)" } | cs |
DeleteItem 작업에 TableName 과 Primary key 를 지정하면 해당 데이터를 삭제한다.
ConditionExpression 에 조건을 설정하여 true 일 때만 삭제를 수행하도록 할 수도 있다.
복수의 Items 를 동시에 삭제하는 BatchWriteItem 작업을 지원한다.
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.