Bird
0
0

Given a DynamoDB table with partition key 'UserId' and sort key 'OrderDate', which query expression will retrieve all orders for user '123' placed in January 2023?

medium📝 query result Q4 of 15
DynamoDB - Access Patterns and Query Optimization
Given a DynamoDB table with partition key 'UserId' and sort key 'OrderDate', which query expression will retrieve all orders for user '123' placed in January 2023?
AFilterExpression: UserId = '123' AND OrderDate BETWEEN '2023-01-01' AND '2023-01-31'
BKeyConditionExpression: UserId = '123' AND OrderDate BETWEEN '2023-01-01' AND '2023-01-31'
CKeyConditionExpression: OrderDate = '2023-01-01' AND UserId = '123'
DFilterExpression: OrderDate = '2023-01-01' AND UserId = '123'
Step-by-Step Solution
Solution:
  1. Step 1: Use KeyConditionExpression for Partition and Sort Keys

    Queries must specify the partition key and can filter on the sort key using conditions like BETWEEN.
  2. Step 2: FilterExpression is applied after fetching data and is less efficient

    Using FilterExpression for partition key is invalid and inefficient.
  3. Final Answer:

    KeyConditionExpression: UserId = '123' AND OrderDate BETWEEN '2023-01-01' AND '2023-01-31' -> Option B
  4. Quick Check:

    Partition key in KeyConditionExpression is mandatory [OK]
Quick Trick: Partition key must be in KeyConditionExpression [OK]
Common Mistakes:
MISTAKES
  • Using FilterExpression instead of KeyConditionExpression for keys
  • Reversing partition and sort key in query
  • Not specifying partition key in query

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More DynamoDB Quizzes