DynamoOps
Querying

Scan with filters

Read a table page by page and narrow the results with DynamoDB filter expressions, attribute names and values, straight from the Filters panel.

The Filters panel

Click ⚙ Filters in the toolbar to reveal the query panel. A mode switch at the top offers Scan, Query and SQL. Scan is the default when a table opens, and the panel’s open state and field values are remembered per tab. Run the current mode with ▶ Execute or ⌘+↵.

Page Sizenumber
Items requested per page, sent as the DynamoDB Limit. Default 50, allowed range 1 to 1000. Shared by Scan, Query and SQL.
Filter Expressiontext
A DynamoDB filter expression such as attribute_exists(email) AND #status = :active. Applied only when non-empty.
Expression Attribute NamesJSON
Placeholders for attribute names that clash with reserved words or contain special characters, for example {"#status": "status"}.
Expression Attribute ValuesJSON
Values referenced in the expression, for example {":active": "active"}. Types follow the JSON you type: strings, numbers, booleans, null, lists and maps.

Running a scan

Scan mode with a filter expression and its attribute names and values.
  1. Write the expression

    Use the native DynamoDB syntax. All comparison operators, AND, OR, NOT and the standard functions are available.

  2. Map names and values

    Any #name placeholder must appear in the names map; any :value placeholder in the values map.

  3. Execute

    DynamoOps scans one page, applies the filter server-side and reports the outcome in the result bar.

Common filter expressions
#status = :active AND createdAt > :since
begins_with(#sk, :prefix)
contains(tags, :tag)
attribute_not_exists(deletedAt)
size(items) >= :min
attribute_type(score, :numType)
A filter does not reduce what you pay for
DynamoDB reads every item on the page and then applies the filter, so a filtered page can return far fewer items than Page Size while consuming the full read capacity. The result bar shows both numbers: “50 items (120 scanned)”. For selective access patterns, prefer a Query by key or index.

Reading the result bar

After each run, the bar under the grid summarises the page.

Page 1 · 50 items (120 scanned) · ⚡ 12.5 RCU · 💰 $0.001625 · ⏱ 143ms
SegmentMeaning
Page NThe page you are on. Pagination controls appear when more pages exist.
itemsItems returned on this page after filtering.
scannedItems DynamoDB evaluated before the filter. Only shown for Scan and Query.
RCU and costCapacity DynamoDB reported as consumed and its estimated cost. Hidden when the endpoint reports none.
msRound-trip time of the request.

Validation and errors

  • Invalid JSON in either map produces the toast “Invalid JSON in Expression Attribute Names” or “… Values”. The scan still runs without that map, and DynamoDB will usually reject the expression with a validation error.
  • Server errors are shown as “Query error: <AWS message>”, for example when a placeholder is missing or a reserved word is used without a name placeholder.
  • Scan mode does not use secondary indexes; switch to Query mode to target an index.

Related