Query
dynamodb_query | R Documentation |
You must provide the name of the partition key attribute and a single value for that attribute¶
Description¶
You must provide the name of the partition key attribute and a single
value for that attribute. query
returns all items with that partition
key value. Optionally, you can provide a sort key attribute and use a
comparison operator to refine the search results.
Use the 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 query
results, you can optionally provide a
FilterExpression
. A FilterExpression
determines which items within
the results should be returned to you. All of the other results are
discarded.
A 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 read operation.
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 use a FilterExpression
.
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.
A single 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 FilterExpression
. If
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 query
finishes, but before the
results are returned. A FilterExpression
cannot contain partition key
or sort key attributes. You need to specify those attributes in the
KeyConditionExpression
.
A 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 ConsistentRead
when querying
a global secondary index.
Usage¶
dynamodb_query(TableName, IndexName, Select, AttributesToGet, Limit,
ConsistentRead, KeyConditions, QueryFilter, ConditionalOperator,
ScanIndexForward, ExclusiveStartKey, ReturnConsumedCapacity,
ProjectionExpression, FilterExpression, KeyConditionExpression,
ExpressionAttributeNames, ExpressionAttributeValues)
Arguments¶
TableName |
[required] The name of the table containing the requested items. You can also provide the Amazon Resource Name (ARN) of the table in this parameter. |
IndexName |
The name of an index to query. This index can be any local
secondary index or global secondary index on the table. Note that if you
use the |
Select |
The attributes to be returned in the result. You can retrieve all item attributes, specific item attributes, the count of matching items, or in the case of an index, some or all of the attributes projected into the index.
If neither If you use the |
AttributesToGet |
This is a legacy parameter. Use |
Limit |
The maximum number of items to evaluate (not necessarily the
number of matching items). If DynamoDB processes the number of items up
to the limit while processing the results, it stops the operation and
returns the matching values up to that point, and a key in
|
ConsistentRead |
Determines the read consistency model: If set to
Strongly consistent reads are not supported on global secondary
indexes. If you query a global secondary index with
|
KeyConditions |
This is a legacy parameter. Use
|
QueryFilter |
This is a legacy parameter. Use |
ConditionalOperator |
This is a legacy parameter. Use |
ScanIndexForward |
Specifies the order for index traversal: If Items with the same partition key value are stored in sorted order by sort key. If the sort key data type is Number, the results are stored in numeric order. For type String, the results are stored in order of UTF-8 bytes. For type Binary, DynamoDB treats each byte of the binary data as unsigned. If |
ExclusiveStartKey |
The primary key of the first item that this operation will
evaluate. Use the value that was returned for
The data type for |
ReturnConsumedCapacity |
|
ProjectionExpression |
A string that identifies one or more attributes to retrieve from the table. These attributes can include scalars, sets, or elements of a JSON document. The attributes in the expression must be separated by commas. If no attribute names are specified, then all attributes will be returned. If any of the requested attributes are not found, they will not appear in the result. For more information, see Accessing Item Attributes in the Amazon DynamoDB Developer Guide. |
FilterExpression |
A string that contains conditions that DynamoDB applies after the
A A For more information, see Filter Expressions in the Amazon DynamoDB Developer Guide. |
KeyConditionExpression |
The condition that specifies the key values for items to be
retrieved by the The condition must perform an equality test on a single partition key value. The condition can optionally perform one of several comparison tests
on a single sort key value. This allows The partition key equality test is required, and must be specified in the following format:
If you also want to provide a condition for the sort key, it must be
combined using
Valid comparisons for the sort key condition are as follows:
Use the You can optionally use the
To work around this, define a placeholder (such a
For a list of reserved words, see Reserved Words in the Amazon DynamoDB Developer Guide. For more information on |
ExpressionAttributeNames |
One or more substitution tokens for attribute names in an
expression. The following are some use cases for using
Use the # character in an expression to dereference an attribute name. For example, consider the following attribute name:
The name of this attribute conflicts with a reserved word, so it
cannot be used directly in an expression. (For the complete list of
reserved words, see Reserved
Words in the Amazon DynamoDB Developer Guide). To work
around this, you could specify the following for
You could then use this substitution in an expression, as in this example:
Tokens that begin with the : character are expression attribute values, which are placeholders for the actual value at runtime. For more information on expression attribute names, see Specifying Item Attributes in the Amazon DynamoDB Developer Guide. |
ExpressionAttributeValues |
One or more values that can be substituted in an expression. Use the : (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the ProductStatus attribute was one of the following:
You would first need to specify
You could then use these values in an expression, such as this:
For more information on expression attribute values, see Specifying Conditions in the Amazon DynamoDB Developer Guide. |
Value¶
A list with the following syntax:
list(
Items = list(
list(
list(
S = "string",
N = "string",
B = raw,
SS = list(
"string"
),
NS = list(
"string"
),
BS = list(
raw
),
M = list(
list()
),
L = list(
list()
),
NULL = TRUE|FALSE,
BOOL = TRUE|FALSE
)
)
),
Count = 123,
ScannedCount = 123,
LastEvaluatedKey = list(
list(
S = "string",
N = "string",
B = raw,
SS = list(
"string"
),
NS = list(
"string"
),
BS = list(
raw
),
M = list(
list()
),
L = list(
list()
),
NULL = TRUE|FALSE,
BOOL = TRUE|FALSE
)
),
ConsumedCapacity = list(
TableName = "string",
CapacityUnits = 123.0,
ReadCapacityUnits = 123.0,
WriteCapacityUnits = 123.0,
Table = list(
ReadCapacityUnits = 123.0,
WriteCapacityUnits = 123.0,
CapacityUnits = 123.0
),
LocalSecondaryIndexes = list(
list(
ReadCapacityUnits = 123.0,
WriteCapacityUnits = 123.0,
CapacityUnits = 123.0
)
),
GlobalSecondaryIndexes = list(
list(
ReadCapacityUnits = 123.0,
WriteCapacityUnits = 123.0,
CapacityUnits = 123.0
)
)
)
)
Request syntax¶
svc$query(
TableName = "string",
IndexName = "string",
Select = "ALL_ATTRIBUTES"|"ALL_PROJECTED_ATTRIBUTES"|"SPECIFIC_ATTRIBUTES"|"COUNT",
AttributesToGet = list(
"string"
),
Limit = 123,
ConsistentRead = TRUE|FALSE,
KeyConditions = list(
list(
AttributeValueList = list(
list(
S = "string",
N = "string",
B = raw,
SS = list(
"string"
),
NS = list(
"string"
),
BS = list(
raw
),
M = list(
list()
),
L = list(
list()
),
NULL = TRUE|FALSE,
BOOL = TRUE|FALSE
)
),
ComparisonOperator = "EQ"|"NE"|"IN"|"LE"|"LT"|"GE"|"GT"|"BETWEEN"|"NOT_NULL"|"NULL"|"CONTAINS"|"NOT_CONTAINS"|"BEGINS_WITH"
)
),
QueryFilter = list(
list(
AttributeValueList = list(
list(
S = "string",
N = "string",
B = raw,
SS = list(
"string"
),
NS = list(
"string"
),
BS = list(
raw
),
M = list(
list()
),
L = list(
list()
),
NULL = TRUE|FALSE,
BOOL = TRUE|FALSE
)
),
ComparisonOperator = "EQ"|"NE"|"IN"|"LE"|"LT"|"GE"|"GT"|"BETWEEN"|"NOT_NULL"|"NULL"|"CONTAINS"|"NOT_CONTAINS"|"BEGINS_WITH"
)
),
ConditionalOperator = "AND"|"OR",
ScanIndexForward = TRUE|FALSE,
ExclusiveStartKey = list(
list(
S = "string",
N = "string",
B = raw,
SS = list(
"string"
),
NS = list(
"string"
),
BS = list(
raw
),
M = list(
list()
),
L = list(
list()
),
NULL = TRUE|FALSE,
BOOL = TRUE|FALSE
)
),
ReturnConsumedCapacity = "INDEXES"|"TOTAL"|"NONE",
ProjectionExpression = "string",
FilterExpression = "string",
KeyConditionExpression = "string",
ExpressionAttributeNames = list(
"string"
),
ExpressionAttributeValues = list(
list(
S = "string",
N = "string",
B = raw,
SS = list(
"string"
),
NS = list(
"string"
),
BS = list(
raw
),
M = list(
list()
),
L = list(
list()
),
NULL = TRUE|FALSE,
BOOL = TRUE|FALSE
)
)
)
Examples¶
## Not run:
# This example queries items in the Music table. The table has a partition
# key and sort key (Artist and SongTitle), but this query only specifies
# the partition key value. It returns song titles by the artist named "No
# One You Know".
svc$query(
ExpressionAttributeValues = list(
`:v1` = list(
S = "No One You Know"
)
),
KeyConditionExpression = "Artist = :v1",
ProjectionExpression = "SongTitle",
TableName = "Music"
)
## End(Not run)