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
Multiple Actions in One DynamoDB Update
📖 Scenario: You are managing a simple inventory system for a small store. Each product has a name, quantity in stock, and a list of tags describing the product.Sometimes, you need to update multiple things about a product at once: change the quantity, add a new tag, and update the last restock date.
🎯 Goal: Build a DynamoDB update expression that performs multiple actions in one update: increment the quantity, add a new tag to the tags list, and set the last restock date.
📋 What You'll Learn
Create an update expression that increments the quantity attribute by 10
Add a new tag "sale" to the tags list attribute
Set the last_restock attribute to the string "2024-06-01"
Use a single UpdateItem call with multiple actions in the update expression
💡 Why This Matters
🌍 Real World
In real inventory systems, updating multiple product attributes at once is common to keep data consistent and reduce the number of database calls.
💼 Career
Knowing how to write complex update expressions in DynamoDB is valuable for backend developers and database administrators working with AWS services.
Progress0 / 4 steps
1
Setup the initial item data
Create a dictionary called item representing a product with these exact attributes: product_id set to "P1001", quantity set to 50, tags set to a list containing "new" and "popular", and last_restock set to "2024-05-20".
DynamoDB
Hint
Use a Python dictionary with the exact keys and values as described.
2
Prepare the update expression components
Create a variable called update_expression and set it to the string that will increment quantity by 10, add "sale" to the tags list, and set last_restock to "2024-06-01" using DynamoDB update syntax with multiple actions separated by commas.
DynamoDB
Hint
Use SET with multiple actions separated by commas. Use list_append to add to the list.
3
Create the expression attribute values
Create a dictionary called expression_attribute_values with these exact keys and values: :inc set to 10, :new_tag set to a list containing "sale", and :date set to "2024-06-01".
DynamoDB
Hint
Use a dictionary with the exact keys and values as described.
4
Combine all parts into the final update call
Create a dictionary called update_params with these exact keys and values: Key set to a dictionary with product_id equal to "P1001", UpdateExpression set to the variable update_expression, and ExpressionAttributeValues set to the variable expression_attribute_values.
DynamoDB
Hint
Combine all parts into one dictionary for the update call.
Practice
(1/5)
1. In DynamoDB, which update action allows you to change or add new attributes to an item in a single update request?
easy
A. REMOVE
B. SET
C. ADD
D. DELETE
Solution
Step 1: Understand update actions in DynamoDB
DynamoDB update expressions use SET to add or modify attributes in an item.
Step 2: Identify the correct action for adding or changing attributes
SET is used to add new attributes or change existing ones in a single update request.
Final Answer:
SET -> Option B
Quick Check:
SET updates attributes [OK]
Hint: Use SET to add or change attributes in one update [OK]
Common Mistakes:
Confusing REMOVE with adding attributes
Using ADD to change non-numeric attributes
Thinking DELETE removes attributes instead of set elements
2. Which of the following is the correct syntax to update an attribute score by adding 10 in a DynamoDB update expression?
easy
A. DELETE score 10
B. SET score = score + 10
C. REMOVE score + 10
D. ADD score 10
Solution
Step 1: Recall syntax for numeric increments in DynamoDB
To increase a numeric attribute, DynamoDB uses ADD followed by the attribute and the value.
Step 2: Match the correct syntax
ADD score 10 correctly adds 10 to the existing score attribute.
Final Answer:
ADD score 10 -> Option D
Quick Check:
ADD increments numbers [OK]
Hint: Use ADD to increase numeric attributes in update [OK]
Common Mistakes:
Using SET with arithmetic expressions (not supported)
Using REMOVE or DELETE for numeric increments
Incorrect syntax like missing commas or keywords
3. Given the following update expression: SET age = age + :inc REMOVE nickname ADD points :pts DELETE tags :oldTags What will happen if the item initially has age = 30, nickname = 'Sam', points = 5, and tags = {'red', 'blue'} with :inc = 2, :pts = 3, and :oldTags = {'blue'}?
medium
A. age becomes 2, nickname removed, points become 8, tags become {'red', 'blue'}
B. age becomes 32, nickname removed, points become 3, tags become {'red', 'blue'}
C. age becomes 32, nickname removed, points become 8, tags become {'red'}
D. age becomes 32, nickname unchanged, points become 8, tags become {'red'}
Solution
Step 1: Apply each update action to the initial item
SET age = age + :inc adds 2 to 30 -> 32; REMOVE nickname deletes 'Sam'; ADD points :pts adds 3 to 5 -> 8; DELETE tags :oldTags removes 'blue' from {'red', 'blue'} -> {'red'}.
Step 2: Confirm final attribute values
age=32, nickname removed, points=8, tags={'red'} matches age becomes 32, nickname removed, points become 8, tags become {'red'}.
Final Answer:
age becomes 32, nickname removed, points become 8, tags become {'red'} -> Option C
Quick Check:
Multiple actions update all attributes correctly [OK]
Hint: Apply each action step-by-step to see final values [OK]
Common Mistakes:
Forgetting REMOVE deletes attribute
Confusing DELETE with REMOVE for sets
Misapplying ADD to sets instead of numbers
4. Identify the error in this DynamoDB update expression: SET name = :n ADD age :a REMOVE points, DELETE tags :t
medium
A. Comma after REMOVE points is invalid syntax
B. ADD cannot be used with a non-numeric attribute like age
C. SET cannot assign a value using a placeholder like :n
D. REMOVE and DELETE cannot be used together in one update
Solution
Step 1: Check syntax for multiple update actions
REMOVE action lists attributes separated by spaces, not commas. The comma after points is invalid.
Step 2: Validate other parts
ADD can be used with numeric attributes; SET can use placeholders; REMOVE and DELETE can coexist.
Final Answer:
Comma after REMOVE points is invalid syntax -> Option A
Quick Check:
REMOVE uses spaces, not commas [OK]
Hint: Use spaces, not commas, to separate REMOVE attributes [OK]
Common Mistakes:
Using commas in REMOVE or DELETE lists
Assuming ADD works on non-numeric attributes
Thinking placeholders are not allowed in SET
5. You want to update a DynamoDB item to do all these in one update: - Increase stock by 5 - Remove attribute discontinued - Add newTag to a set attribute tags Which update expression correctly performs all these actions?
hard
A. ADD stock :inc REMOVE discontinued ADD tags :newTag
B. SET stock = stock + :inc REMOVE discontinued ADD tags :newTag
C. ADD stock :inc REMOVE discontinued SET tags = tags + :newTag
D. SET stock = stock + :inc DELETE discontinued ADD tags :newTag
Solution
Step 1: Choose correct action for increasing numeric attribute
ADD stock :inc correctly increases numeric stock by :inc.
Step 2: Remove attribute and add to set correctly
REMOVE discontinued deletes the attribute; ADD tags :newTag adds elements to the set.
Step 3: Verify syntax correctness
ADD stock :inc REMOVE discontinued ADD tags :newTag uses ADD for numeric and set additions, REMOVE for attribute removal, all valid.