Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Delete an Item from a DynamoDB Table
📖 Scenario: You manage a small online bookstore. You keep track of books in a DynamoDB table called Books. Sometimes, a book is no longer available and you need to remove it from your database.
🎯 Goal: Learn how to delete a specific item from a DynamoDB table using the DeleteItem operation.
📋 What You'll Learn
Create a DynamoDB table named Books with a primary key ISBN.
Set up a variable with the ISBN of the book to delete.
Write the DeleteItem command to remove the book with the specified ISBN.
Complete the deletion request with the correct table name and key.
💡 Why This Matters
🌍 Real World
Deleting items from a database is common when data becomes outdated or incorrect, such as removing discontinued products or outdated records.
💼 Career
Database administrators and backend developers often need to delete records safely and efficiently using commands like DeleteItem in DynamoDB.
Progress0 / 4 steps
1
Create the Books table data structure
Create a dictionary called Books that represents your DynamoDB table with these exact items: {'ISBN': '978-0132350884', 'Title': 'Clean Code', 'Author': 'Robert C. Martin'} and {'ISBN': '978-0201616224', 'Title': 'The Pragmatic Programmer', 'Author': 'Andrew Hunt'}.
DynamoDB
Hint
Use a list of dictionaries to represent the table items exactly as shown.
2
Set the ISBN to delete
Create a variable called isbn_to_delete and set it to the string '978-0132350884' which is the ISBN of the book you want to remove.
DynamoDB
Hint
Assign the exact string to the variable isbn_to_delete.
3
Write the DeleteItem command
Create a dictionary called delete_request that represents the DynamoDB DeleteItem command. It should have a key TableName set to 'Books' and a key Key which is a dictionary with 'ISBN' set to the value of isbn_to_delete.
DynamoDB
Hint
Use a dictionary with keys TableName and Key exactly as shown, with the key value wrapped in a type dictionary.
4
Complete the DeleteItem request
Add a key ReturnValues to the delete_request dictionary and set it to 'ALL_OLD' to return the deleted item details.
DynamoDB
Hint
Set ReturnValues to 'ALL_OLD' inside the delete_request dictionary.
Practice
(1/5)
1. What does the DeleteItem operation do in DynamoDB?
easy
A. Deletes all items in a table
B. Reads an item from the table
C. Updates an item in the table
D. Removes a single item from a table using its primary key
Solution
Step 1: Understand the purpose of DeleteItem
DeleteItem is designed to remove exactly one item identified by its primary key from a DynamoDB table.
Step 2: Compare with other operations
Unlike update or read operations, DeleteItem specifically removes the item and does nothing if the item does not exist.
Final Answer:
Removes a single item from a table using its primary key -> Option D
Quick Check:
DeleteItem removes one item [OK]
Hint: DeleteItem removes by primary key only [OK]
Common Mistakes:
Thinking DeleteItem deletes multiple items
Confusing DeleteItem with UpdateItem
Assuming DeleteItem reads data
2. Which of the following is the correct syntax to delete an item with primary key {"UserId": "123"} from a DynamoDB table named Users using AWS SDK for JavaScript v3?
In AWS SDK v3 for JavaScript, DeleteItemCommand is used with client.send and the Key attribute must specify the data type (S for string).
Step 2: Check each option
await client.send(new DeleteItemCommand({ TableName: "Users", Key: { UserId: { S: "123" } } })); correctly uses DeleteItemCommand with Key including data type. Distractors use incorrect method names like deleteItem or delete, omit data types, lack await or send, or use DeleteCommand which is not valid.
A. The Key attribute must specify data types like { S: "O123" }
B. TableName is incorrect and must be lowercase
C. DeleteItemCommand cannot be awaited
D. OrderId is not a valid primary key
Solution
Step 1: Check the Key format in DeleteItemCommand
In DynamoDB SDK, the Key must specify attribute values with their data types, e.g., { S: "O123" } for string.
Step 2: Identify the error cause
The code uses { OrderId: "O123" } without data type, causing a validation error.
Final Answer:
The Key attribute must specify data types like { S: "O123" } -> Option A
Quick Check:
Key requires data type = The Key attribute must specify data types like { S: "O123" } [OK]
Hint: Always include data types in Key for DeleteItem [OK]
Common Mistakes:
Omitting data types in Key
Assuming TableName case matters
Not awaiting async calls
5. You want to delete an item only if it exists and has the attribute Status set to "Pending". Which DeleteItem parameter should you use to ensure this conditional delete?
hard
A. Use KeyConditionExpression to filter the item
B. Use ReturnValues: "ALL_OLD" to check the old item
C. Use ConditionExpression: "Status = :val" with ExpressionAttributeValues: { ":val": { S: "Pending" } }
D. Use UpdateExpression to set Status to null before deleting
Solution
Step 1: Understand conditional deletes in DynamoDB
DeleteItem supports a ConditionExpression to delete only if the condition is true.
Step 2: Apply condition to Status attribute
Using ConditionExpression "Status = :val" with ExpressionAttributeValues specifying "Pending" ensures deletion only if Status is "Pending".
Step 3: Evaluate other options
ReturnValues returns old data but does not conditionally delete. KeyConditionExpression is for queries, not deletes. UpdateExpression is for updates, not deletes.
Final Answer:
Use ConditionExpression: "Status = :val" with ExpressionAttributeValues: { ":val": { S: "Pending" } } -> Option C
Quick Check:
Conditional delete uses ConditionExpression = Use ConditionExpression: "Status = :val" with ExpressionAttributeValues: { ":val": { S: "Pending" } } [OK]
Hint: Use ConditionExpression to delete conditionally [OK]