Bird
Raised Fist0
DynamoDBquery~5 mins

Multiple actions in one update in DynamoDB - Time & Space Complexity

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
Time Complexity: Multiple actions in one update
O(n)
Understanding Time Complexity

When updating a DynamoDB item with several changes at once, it's important to know how the work grows as the number of changes increases.

We want to understand how the time to update changes when we add more actions in a single update.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


UpdateItem {
  Key: { id: "123" },
  UpdateExpression: "SET attr1 = :val1, attr2 = :val2, attr3 = :val3",
  ExpressionAttributeValues: {
    ":val1": "value1",
    ":val2": "value2",
    ":val3": "value3"
  }
}
    

This code updates one item by setting three attributes in a single update request.

Identify Repeating Operations
  • Primary operation: Applying each update action to the item attributes.
  • How many times: Once for each attribute being updated (3 times in this example).
How Execution Grows With Input

Each additional attribute update adds a small extra step to the work done.

Input Size (number of updates)Approx. Operations
33 update actions
1010 update actions
100100 update actions

Pattern observation: The work grows directly with the number of update actions.

Final Time Complexity

Time Complexity: O(n)

This means the time to complete the update grows in a straight line as you add more actions.

Common Mistake

[X] Wrong: "Doing multiple updates in one request takes the same time as one update."

[OK] Correct: Each update action adds work, so more actions mean more time, not the same time.

Interview Connect

Understanding how multiple updates affect time helps you explain and predict performance in real DynamoDB tasks.

Self-Check

"What if we batch multiple update requests instead of combining actions in one update? How would the time complexity change?"

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