Bird
Raised Fist0
DynamoDBquery~20 mins

Multiple actions in one update in DynamoDB - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

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
Challenge - 5 Problems
🎖️
Master of Multiple Actions in One Update
Get all challenges correct to earn this badge!
Test your skills under time pressure!
query_result
intermediate
2:00remaining
What is the result of this DynamoDB update expression?
Given a DynamoDB item with attributes {"count": 5, "tags": ["red", "blue"]}, what will be the value of the item after applying this update expression?

UpdateExpression: "SET count = count + :inc ADD tags :newTags"
ExpressionAttributeValues: {":inc": 3, ":newTags": {"SS": ["green"]}}
A{"count": 8, "tags": ["red", "blue", "green"]}
B{"count": 8, "tags": ["green"]}
C{"count": 3, "tags": ["red", "blue", "green"]}
D{"count": 5, "tags": ["red", "blue"]}
Attempts:
2 left
💡 Hint
Remember that ADD adds elements to a set attribute without removing existing ones.
📝 Syntax
intermediate
1:30remaining
Which update expression syntax is valid for multiple actions?
Which of the following DynamoDB update expressions correctly combines multiple actions in one statement?
ASET price = :p ADD tags :t REMOVE description
BSET price = :p, ADD tags :t REMOVE description
CSET price = :p; ADD tags :t; REMOVE description
DSET price = :p ADD tags :t, REMOVE description
Attempts:
2 left
💡 Hint
Multiple actions are separated by spaces, not commas or semicolons.
optimization
advanced
2:30remaining
Optimizing multiple attribute updates in one request
You want to update three attributes in a DynamoDB item: increment 'views' by 1, add 'new' to a set attribute 'labels', and remove the attribute 'temp'. Which approach is most efficient?
ASend three separate UpdateItem requests, one for each action.
BUse one UpdateItem request with UpdateExpression: 'SET views = views + :inc; ADD labels :newLabels; REMOVE temp'.
CUse one UpdateItem request with UpdateExpression: 'SET views = views + :inc, ADD labels :newLabels, REMOVE temp'.
DUse one UpdateItem request with UpdateExpression: 'SET views = views + :inc ADD labels :newLabels REMOVE temp'.
Attempts:
2 left
💡 Hint
Minimize network calls by combining actions in one request with correct syntax.
🔧 Debug
advanced
2:00remaining
Why does this multiple-action update fail?
You run this update expression:

UpdateExpression: "SET score = score + :val ADD tags :newTags REMOVE tags"
ExpressionAttributeValues: {":val": 10, ":newTags": {"SS": ["urgent"]}}


It returns a validation error. What is the cause?
AThe SET action cannot increment a numeric attribute.
BThe ADD action requires a numeric value, not a set.
CYou cannot ADD and REMOVE the same attribute in one update.
DExpressionAttributeValues is missing a value for :val.
Attempts:
2 left
💡 Hint
Think about conflicting actions on the same attribute in one update.
🧠 Conceptual
expert
3:00remaining
Understanding atomicity of multiple actions in one update
When you perform multiple actions (SET, ADD, REMOVE) in a single DynamoDB UpdateItem request, which statement is true about the operation?
AEach action is applied independently; some may succeed while others fail.
BAll actions are applied atomically; either all succeed or none are applied.
COnly the first action is guaranteed to succeed; others are best-effort.
DActions are queued and applied sequentially with possible partial updates.
Attempts:
2 left
💡 Hint
Think about DynamoDB's consistency and atomicity guarantees for UpdateItem.

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

  1. Step 1: Understand update actions in DynamoDB

    DynamoDB update expressions use SET to add or modify attributes in an item.
  2. 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.
  3. Final Answer:

    SET -> Option B
  4. 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

  1. Step 1: Recall syntax for numeric increments in DynamoDB

    To increase a numeric attribute, DynamoDB uses ADD followed by the attribute and the value.
  2. Step 2: Match the correct syntax

    ADD score 10 correctly adds 10 to the existing score attribute.
  3. Final Answer:

    ADD score 10 -> Option D
  4. 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

  1. 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'}.
  2. 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'}.
  3. Final Answer:

    age becomes 32, nickname removed, points become 8, tags become {'red'} -> Option C
  4. 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

  1. Step 1: Check syntax for multiple update actions

    REMOVE action lists attributes separated by spaces, not commas. The comma after points is invalid.
  2. Step 2: Validate other parts

    ADD can be used with numeric attributes; SET can use placeholders; REMOVE and DELETE can coexist.
  3. Final Answer:

    Comma after REMOVE points is invalid syntax -> Option A
  4. 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

  1. Step 1: Choose correct action for increasing numeric attribute

    ADD stock :inc correctly increases numeric stock by :inc.
  2. Step 2: Remove attribute and add to set correctly

    REMOVE discontinued deletes the attribute; ADD tags :newTag adds elements to the set.
  3. 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.
  4. Final Answer:

    ADD stock :inc REMOVE discontinued ADD tags :newTag -> Option A
  5. Quick Check:

    Use ADD for numbers and sets, REMOVE for attributes [OK]
Hint: Use ADD for numbers and sets, REMOVE for attributes [OK]
Common Mistakes:
  • Using SET with arithmetic expressions (not supported)
  • Using DELETE instead of REMOVE for attributes
  • Trying to add to sets with SET instead of ADD