Query operation finds items based on primary key values. You
can query any table or secondary index that has a composite primary key (a
partition key and a sort key).
KeyConditionExpression parameter to provide a specific
value for the partition key. The
Query operation will return all
of the items from the table or index with that partition key value. You can
optionally narrow the scope of the
Query operation by specifying
a sort key value and a comparison operator in
KeyConditionExpression. To further refine the
results, you can optionally provide a
FilterExpression determines which items within the results
should be returned to you. All of the other results are discarded.
Query operation always returns a result set. If no matching
items are found, the result set will be empty. Queries that do not return
results consume the minimum number of read capacity units for that type of
DynamoDB calculates the number of read capacity units consumed based on item
size, not on the amount of data that is returned to an application. The
number of capacity units consumed will be the same whether you request all of
the attributes (the default behavior) or just some of them (using a
projection expression). The number will also be the same whether or not you
Query results are always sorted by the sort key value. If the
data type of the sort key is Number, the results are returned in numeric
order; otherwise, the results are returned in order of UTF-8 bytes. By
default, the sort order is ascending. To reverse the order, set the
ScanIndexForward parameter to false.
Query operation will read up to the maximum number of
items set (if using the
Limit parameter) or a maximum of 1 MB of
data and then apply any filtering to the results using
LastEvaluatedKey is present in
the response, you will need to paginate the result set. For more information,
see Paginating the Results in the Amazon DynamoDB Developer Guide.
FilterExpression is applied after a
but before the results are returned. A
contain partition key or sort key attributes. You need to specify those
attributes in the
Query operation can return an empty result set and a
LastEvaluatedKey if all the items read for the page of results
are filtered out.
You can query a table, a local secondary index, or a global secondary index.
For a query on a table or on a local secondary index, you can set the
ConsistentRead parameter to
true and obtain a
strongly consistent result. Global secondary indexes support eventually
consistent reads only, so do not specify
querying a global secondary index.