Bird
Raised Fist0
DynamoDBquery~10 mins

Why CRUD operations are foundational in DynamoDB - Test Your Understanding

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a new item in a DynamoDB table.

DynamoDB
response = table.[1](Item={'UserId': '123', 'Name': 'Alice'})
Drag options to blanks, or click blank then click option'
Aput_item
Bget_item
Cdelete_item
Dupdate_item
Attempts:
3 left
💡 Hint
Common Mistakes
Using get_item instead of put_item
Using update_item without an existing item
2fill in blank
medium

Complete the code to read an item from a DynamoDB table by its key.

DynamoDB
response = table.[1](Key={'UserId': '123'})
Drag options to blanks, or click blank then click option'
Aput_item
Bget_item
Cdelete_item
Dupdate_item
Attempts:
3 left
💡 Hint
Common Mistakes
Using put_item to read data
Using delete_item instead of get_item
3fill in blank
hard

Fix the error in the code to update an existing item in DynamoDB.

DynamoDB
response = table.[1](Key={'UserId': '123'}, UpdateExpression='SET Age = :age', ExpressionAttributeValues={':age': 30})
Drag options to blanks, or click blank then click option'
Aget_item
Bput_item
Cupdate_item
Ddelete_item
Attempts:
3 left
💡 Hint
Common Mistakes
Using put_item which replaces the whole item
Using get_item which only reads data
4fill in blank
hard

Fill both blanks to delete an item by key and confirm the operation.

DynamoDB
response = table.[1](Key=[2])
Drag options to blanks, or click blank then click option'
Adelete_item
B{'UserId': '123'}
C{'Name': 'Alice'}
Dput_item
Attempts:
3 left
💡 Hint
Common Mistakes
Using put_item instead of delete_item
Providing wrong key structure
5fill in blank
hard

Fill all three blanks to create an item and then read it back.

DynamoDB
table.[1](Item={'UserId': '456', 'Name': 'Bob'})
response = table.[2](Key=[3])
Drag options to blanks, or click blank then click option'
Aput_item
Bget_item
C{'UserId': '456'}
Ddelete_item
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up method names
Using wrong key format

Practice

(1/5)
1. What does the CRUD acronym stand for in database operations?
easy
A. Calculate, Remove, Upload, Download
B. Create, Read, Update, Delete
C. Copy, Run, Undo, Drop
D. Connect, Retrieve, Use, Delete

Solution

  1. Step 1: Understand each letter in CRUD

    CRUD stands for the four basic operations to manage data: Create, Read, Update, and Delete.
  2. Step 2: Match the correct full form

    Among the options, only Create, Read, Update, Delete correctly lists these four operations.
  3. Final Answer:

    Create, Read, Update, Delete -> Option B
  4. Quick Check:

    CRUD = Create, Read, Update, Delete [OK]
Hint: Remember CRUD as the four main data actions [OK]
Common Mistakes:
  • Confusing CRUD with unrelated terms
  • Mixing up the order of operations
  • Thinking CRUD includes 'Copy' or 'Calculate'
2. Which of the following is the correct syntax to add a new item in DynamoDB using the AWS SDK?
easy
A. dynamodb.putItem({ TableName: 'Users', Item: { 'UserId': { S: '123' } } })
B. dynamodb.getItem({ TableName: 'Users', Key: { 'UserId': { S: '123' } } })
C. dynamodb.deleteItem({ TableName: 'Users', Key: { 'UserId': { S: '123' } } })
D. dynamodb.updateItem({ TableName: 'Users', Key: { 'UserId': { S: '123' } } })

Solution

  1. Step 1: Identify the operation to add a new item

    Adding a new item uses the putItem method in DynamoDB.
  2. Step 2: Match the correct syntax

    dynamodb.putItem({ TableName: 'Users', Item: { 'UserId': { S: '123' } } }) uses putItem with the correct parameters to add an item.
  3. Final Answer:

    dynamodb.putItem({ TableName: 'Users', Item: { 'UserId': { S: '123' } } }) -> Option A
  4. Quick Check:

    Adding item = putItem [OK]
Hint: Use putItem to create new data in DynamoDB [OK]
Common Mistakes:
  • Using getItem or deleteItem to add data
  • Confusing Key with Item in parameters
  • Missing TableName or Item fields
3. Given the following DynamoDB operation, what will be the result?
const params = { TableName: 'Books', Key: { 'ISBN': { S: '978-1234567890' } } };
const data = await dynamodb.getItem(params).promise();
console.log(data.Item);
medium
A. It will cause a syntax error
B. It will delete the item with ISBN '978-1234567890'
C. It will update the item with ISBN '978-1234567890'
D. It will print the item with ISBN '978-1234567890' if it exists

Solution

  1. Step 1: Understand the getItem operation

    The getItem method retrieves an item by its key from the table.
  2. Step 2: Analyze the code output

    The code logs data.Item, which will be the item with the given ISBN if it exists, or undefined if not.
  3. Final Answer:

    It will print the item with ISBN '978-1234567890' if it exists -> Option D
  4. Quick Check:

    getItem returns item data [OK]
Hint: getItem fetches data; console.log prints it [OK]
Common Mistakes:
  • Thinking getItem deletes or updates data
  • Assuming syntax error due to async/await
  • Confusing Key with Item in parameters
4. You wrote this DynamoDB update code but it throws an error:
const params = {
  TableName: 'Users',
  Key: { 'UserId': { S: 'abc123' } },
  UpdateExpression: 'set Age = :age',
  ExpressionAttributeValues: { ':age': 30 }
};
await dynamodb.updateItem(params).promise();

What is the likely cause of the error?
medium
A. ExpressionAttributeValues must use DynamoDB types like { ':age': { N: '30' } }
B. UpdateExpression should be 'update Age = :age'
C. Key should be inside Item property
D. TableName is missing

Solution

  1. Step 1: Check ExpressionAttributeValues format

    DynamoDB expects attribute values to be typed, e.g., numbers as { N: '30' }.
  2. Step 2: Identify the error cause

    The code uses a plain number 30 instead of the typed format, causing a validation error.
  3. Final Answer:

    ExpressionAttributeValues must use DynamoDB types like { ':age': { N: '30' } } -> Option A
  4. Quick Check:

    Use typed values in ExpressionAttributeValues [OK]
Hint: Always wrap values with DynamoDB types in updates [OK]
Common Mistakes:
  • Using raw JS values instead of typed DynamoDB values
  • Wrong UpdateExpression syntax
  • Misplacing Key inside Item
5. You want to delete a user from a DynamoDB table only if their account is inactive. Which approach correctly combines CRUD operations to achieve this safely?
hard
A. Use putItem to overwrite the user with an empty item
B. Use updateItem to set AccountStatus to 'deleted' without conditions
C. Use deleteItem with a ConditionExpression checking if AccountStatus = 'inactive'
D. Use getItem to read then deleteItem without conditions

Solution

  1. Step 1: Understand safe deletion with conditions

    To delete only if a condition is met, use deleteItem with a ConditionExpression.
  2. Step 2: Evaluate options for correctness

    Use deleteItem with a ConditionExpression checking if AccountStatus = 'inactive' uses deleteItem with a condition to delete only inactive accounts, which is safe and efficient.
  3. Final Answer:

    Use deleteItem with a ConditionExpression checking if AccountStatus = 'inactive' -> Option C
  4. Quick Check:

    Conditional delete = deleteItem + ConditionExpression [OK]
Hint: Use ConditionExpression to safely delete items [OK]
Common Mistakes:
  • Deleting without checking account status
  • Using updateItem to delete data
  • Overwriting with putItem instead of deleting