Bird
0
0

Given a DynamoDB table with primary key { PartitionKey: 'CustomerId', SortKey: 'OrderDate' }, which query will efficiently retrieve all orders for customer '123' sorted by date?

medium📝 query result Q13 of 15
DynamoDB - Access Patterns and Query Optimization
Given a DynamoDB table with primary key { PartitionKey: 'CustomerId', SortKey: 'OrderDate' }, which query will efficiently retrieve all orders for customer '123' sorted by date?
A<code>Query(TableName='Orders', KeyConditionExpression='OrderDate = :date', ExpressionAttributeValues={':date': '2023-01-01'})</code>
B<code>Scan(TableName='Orders', FilterExpression='CustomerId = :cid', ExpressionAttributeValues={':cid': '123'})</code>
C<code>Query(TableName='Orders', KeyConditionExpression='CustomerId = :cid', ExpressionAttributeValues={':cid': '123'})</code>
D<code>Scan(TableName='Orders')</code>
Step-by-Step Solution
Solution:
  1. Step 1: Understand query vs scan in DynamoDB

    Query uses keys to efficiently find items; scan reads entire table and filters after.
  2. Step 2: Match query to access pattern

    Query(TableName='Orders', KeyConditionExpression='CustomerId = :cid', ExpressionAttributeValues={':cid': '123'}) queries by partition key 'CustomerId' = '123', which is efficient and returns sorted by 'OrderDate'.
  3. Final Answer:

    <code>Query(TableName='Orders', KeyConditionExpression='CustomerId = :cid', ExpressionAttributeValues={':cid': '123'})</code> -> Option C
  4. Quick Check:

    Query by partition key = efficient retrieval [OK]
Quick Trick: Use Query with partition key, not Scan, for fast results [OK]
Common Mistakes:
MISTAKES
  • Using Scan instead of Query for key-based retrieval
  • Querying by sort key alone without partition key
  • Not using KeyConditionExpression properly

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More DynamoDB Quizzes