Autosave: 2024-06-23 13:00:03
This commit is contained in:
		
							parent
							
								
									b96aa58485
								
							
						
					
					
						commit
						97735f1070
					
				
					 2 changed files with 31 additions and 0 deletions
				
			
		|  | @ -2,6 +2,7 @@ | |||
| tags: | ||||
|   - AWS | ||||
|   - databases | ||||
|   - dynamodb | ||||
| --- | ||||
| 
 | ||||
| # Database options | ||||
|  |  | |||
|  | @ -21,11 +21,41 @@ const client = new DynamoDBClient({ | |||
| }); | ||||
| ``` | ||||
| 
 | ||||
| ### DynamoDB Document Client | ||||
| 
 | ||||
| The Document Client returns the data as a standard JSON document in the manner | ||||
| of a document-based NoSQL database. Without it, DynamoDB will return the data | ||||
| with type data which is unwieldy and hard to parse. | ||||
| 
 | ||||
| To transform into a document structure: | ||||
| 
 | ||||
| ```js | ||||
| import DynamoDBClient from "@aws-sdk/client-dynamodb"; | ||||
| import DynamoDBDocumentClient from "@aws-sdk/lib-dynamodb"; | ||||
| 
 | ||||
| const client = new DynamoDBClient({ | ||||
|   region: "eu-west-2", | ||||
|   accessKeyId: process.env.ACCESS_KEY_ID, | ||||
|   secretAccessKey: process.env.ACCESS_KEY_ID, | ||||
| }); | ||||
| 
 | ||||
| const dynamoDbDocumentClient = DynamoDBDocumentClient.from(client); | ||||
| ``` | ||||
| 
 | ||||
| ## Query a table | ||||
| 
 | ||||
| Querying is the most performant and cost-effective method since it is an O(1) | ||||
| lookup against a partition key or secondary index. | ||||
| 
 | ||||
| ```js | ||||
| const params = { | ||||
|   TableName: "YourTableName", | ||||
|   KeyConditionExpression: "#pk = :pk", | ||||
|   ExpressionAttributeNames: { "#pk": "PrimaryKeyAttributeName" }, | ||||
|   ExpressionAttributeValues: { ":pk": "PrimaryKeyValue" }, | ||||
| }; | ||||
| ``` | ||||
| 
 | ||||
| ## Scan a table | ||||
| 
 | ||||
| Scanning is less performant (O(n)) and most expensive since it requires checking | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 thomasabishop
						thomasabishop