Bird
Raised Fist0
DynamoDBquery~20 mins

Limit and pagination 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
🎖️
DynamoDB Pagination Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
query_result
intermediate
1:30remaining
What is the output of this DynamoDB scan with Limit?

Consider a DynamoDB table named Books with 10 items. You run this scan command with Limit=3:

aws dynamodb scan --table-name Books --limit 3

What will be the number of items returned in Items?

A10 items
B3 items
C0 items
DAll items except 3
Attempts:
2 left
💡 Hint

The Limit parameter controls how many items are returned in one response.

query_result
intermediate
1:30remaining
What happens when you use LastEvaluatedKey in DynamoDB pagination?

You perform a scan on a DynamoDB table with Limit=2. The response includes LastEvaluatedKey. What does this key represent?

AThe key to start the next scan to get more items
BThe last item returned in the current scan
CThe primary key of the first item in the table
DAn error indicator for the scan
Attempts:
2 left
💡 Hint

Think about how you get the next page of results in DynamoDB.

📝 Syntax
advanced
2:00remaining
Which DynamoDB scan command correctly paginates to get the next 5 items?

You have the LastEvaluatedKey from a previous scan stored in a JSON file lastkey.json. Which command correctly uses it to get the next 5 items?

Aaws dynamodb scan --table-name Books --limit 5 --last-evaluated-key file://lastkey.json
Baws dynamodb scan --table-name Books --limit 5 --start-key file://lastkey.json
Caws dynamodb scan --table-name Books --limit 5 --exclusive-start-key file://lastkey.json
Daws dynamodb scan --table-name Books --limit 5 --startExclusiveKey file://lastkey.json
Attempts:
2 left
💡 Hint

Check the exact parameter name for starting a scan from a key.

🧠 Conceptual
advanced
1:30remaining
Why might a DynamoDB scan with Limit not return the exact number of items requested?

You set Limit=5 in a scan, but the response returns fewer than 5 items without LastEvaluatedKey. Why?

ABecause Limit only applies to the number of attributes, not items
BBecause Limit is ignored if the table has more items
CBecause the scan failed and returned partial data
DBecause the scan reached the end of the table and fewer items remain
Attempts:
2 left
💡 Hint

Think about what happens when you reach the last items in the table.

optimization
expert
2:30remaining
How to efficiently paginate large DynamoDB tables without scanning all items?

You want to paginate through a large DynamoDB table efficiently. Which approach is best?

AUse Query with a partition key and ExclusiveStartKey for pagination
BUse Scan with Limit and LastEvaluatedKey repeatedly
CUse Scan without Limit to get all items at once
DUse Query without specifying a key to get all items
Attempts:
2 left
💡 Hint

Consider how DynamoDB is optimized for queries on keys.

Practice

(1/5)
1. What does the Limit parameter do in a DynamoDB query or scan?
easy
A. It filters items based on a condition.
B. It sets the maximum size of each item returned.
C. It limits the number of items returned in one response.
D. It sorts the items in ascending order.

Solution

  1. Step 1: Understand the role of Limit in DynamoDB

    The Limit parameter controls how many items DynamoDB returns in a single query or scan response.
  2. Step 2: Differentiate Limit from other parameters

    Limit does not filter or sort items; it only restricts the count of items returned at once.
  3. Final Answer:

    It limits the number of items returned in one response. -> Option C
  4. Quick Check:

    Limit = number of items returned [OK]
Hint: Limit sets max items per response, not filtering or sorting [OK]
Common Mistakes:
  • Confusing Limit with filtering conditions
  • Thinking Limit sorts the results
  • Assuming Limit changes item size
2. Which of the following is the correct way to specify a limit of 5 items in a DynamoDB query using AWS SDK for JavaScript?
easy
A. query({ TableName: 'MyTable', MaxResults: 5 })
B. query({ TableName: 'MyTable', Limit: 5 })
C. query({ TableName: 'MyTable', MaxItems: 5 })
D. query({ TableName: 'MyTable', limit: 5 })

Solution

  1. Step 1: Check parameter case sensitivity in AWS SDK

    In AWS SDK for JavaScript, parameter names are case-sensitive and 'Limit' must be capitalized.
  2. Step 2: Verify correct parameter name for limiting items

    The correct parameter to limit items is 'Limit', not 'limit', 'MaxItems', or 'MaxResults'.
  3. Final Answer:

    query({ TableName: 'MyTable', Limit: 5 }) -> Option B
  4. Quick Check:

    Correct case and name for limit is 'Limit' [OK]
Hint: Use exact 'Limit' with capital L in query parameters [OK]
Common Mistakes:
  • Using lowercase 'limit' instead of 'Limit'
  • Using wrong parameter names like MaxItems
  • Confusing limit with max results
3. Given a DynamoDB table with 10 items, what will be the result of this scan operation?
scan({ TableName: 'MyTable', Limit: 3 })
medium
A. Returns all 10 items in one response.
B. Returns exactly 3 items in the response.
C. Returns an error because Limit is too small.
D. Returns 3 items and a LastEvaluatedKey for next page.

Solution

  1. Step 1: Understand Limit effect on scan results

    Limit restricts the number of items returned in one response to 3.
  2. Step 2: Recognize pagination behavior with LastEvaluatedKey

    Since there are more items (10 total), DynamoDB returns 3 items plus a LastEvaluatedKey to continue scanning next items.
  3. Final Answer:

    Returns 3 items and a LastEvaluatedKey for next page. -> Option D
  4. Quick Check:

    Limit 3 + more items = partial results + LastEvaluatedKey [OK]
Hint: Limit returns partial items plus LastEvaluatedKey if more exist [OK]
Common Mistakes:
  • Assuming all items return ignoring Limit
  • Thinking Limit causes error if small
  • Missing LastEvaluatedKey for pagination
4. You run this DynamoDB query but get an error:
query({ TableName: 'MyTable', Limit: 5, ExclusiveStartKey: { id: '123' } })

What is the most likely cause?
medium
A. ExclusiveStartKey is missing required key attributes.
B. Limit cannot be used with ExclusiveStartKey.
C. TableName is incorrect.
D. Limit value must be greater than 10.

Solution

  1. Step 1: Understand ExclusiveStartKey requirements

    ExclusiveStartKey must include the full primary key attributes exactly as stored in the table.
  2. Step 2: Identify error cause

    If the provided ExclusiveStartKey lacks required key attributes or has wrong format, DynamoDB returns an error.
  3. Final Answer:

    ExclusiveStartKey is missing required key attributes. -> Option A
  4. Quick Check:

    ExclusiveStartKey needs full primary key [OK]
Hint: ExclusiveStartKey must have full primary key attributes [OK]
Common Mistakes:
  • Thinking Limit and ExclusiveStartKey cannot be combined
  • Assuming TableName typo causes this error
  • Believing Limit must be > 10
5. You want to fetch all items from a large DynamoDB table but only 4 items at a time to avoid timeouts. Which approach correctly implements pagination?
hard
A. Use Limit: 4 and pass LastEvaluatedKey from previous response as ExclusiveStartKey in next query.
B. Use Limit: 4 and always start query with ExclusiveStartKey: null.
C. Use Limit: 4 and increase Limit by 4 each time to get next items.
D. Use Limit: 4 and scan the whole table once without ExclusiveStartKey.

Solution

  1. Step 1: Understand pagination with Limit and ExclusiveStartKey

    Limit controls how many items are returned per request. To get next items, use ExclusiveStartKey with LastEvaluatedKey from previous response.
  2. Step 2: Confirm correct pagination process

    Use Limit: 4 and pass LastEvaluatedKey from previous response as ExclusiveStartKey in next query to fetch items in pages. Restarting from the beginning, increasing Limit, or scanning without pagination leads to repeated or incomplete results.
  3. Final Answer:

    Use Limit: 4 and pass LastEvaluatedKey from previous response as ExclusiveStartKey in next query. -> Option A
  4. Quick Check:

    Pagination = Limit + ExclusiveStartKey chaining [OK]
Hint: Pass LastEvaluatedKey as ExclusiveStartKey to paginate [OK]
Common Mistakes:
  • Restarting query without ExclusiveStartKey
  • Increasing Limit instead of paginating
  • Scanning whole table ignoring pagination