query method
Future<QueryOutputDC>
query({
- required String tableName,
- List<
String> ? attributesToGet, - ConditionalOperator? conditionalOperator,
- bool? consistentRead,
- Map<
String, dynamic> ? exclusiveStartKey, - Map<
String, String> ? expressionAttributeNames, - Map<
String, dynamic> ? expressionAttributeValues, - String? filterExpression,
- String? indexName,
- String? keyConditionExpression,
- Map<
String, ConditionDC> ? keyConditions, - int? limit,
- String? projectionExpression,
- Map<
String, ConditionDC> ? queryFilter, - ReturnConsumedCapacity? returnConsumedCapacity,
- bool? scanIndexForward,
- Select? select,
Directly access items from a table by primary key or a secondary index.
Implementation
Future<QueryOutputDC> query({
required String tableName,
List<String>? attributesToGet,
ConditionalOperator? conditionalOperator,
bool? consistentRead,
Map<String, dynamic>? exclusiveStartKey,
Map<String, String>? expressionAttributeNames,
Map<String, dynamic>? expressionAttributeValues,
String? filterExpression,
String? indexName,
String? keyConditionExpression,
Map<String, ConditionDC>? keyConditions,
int? limit,
String? projectionExpression,
Map<String, ConditionDC>? queryFilter,
ReturnConsumedCapacity? returnConsumedCapacity,
bool? scanIndexForward,
Select? select,
}) async {
final qr = await dynamoDB.query(
tableName: tableName,
attributesToGet: attributesToGet,
conditionalOperator: conditionalOperator,
consistentRead: consistentRead,
exclusiveStartKey: exclusiveStartKey?.fromJsonToAttributeValue(),
expressionAttributeNames: expressionAttributeNames,
expressionAttributeValues:
expressionAttributeValues?.fromJsonToAttributeValue(),
filterExpression: filterExpression,
indexName: indexName,
keyConditionExpression: keyConditionExpression,
keyConditions: keyConditions?.map((key, value) => MapEntry(
key,
Condition(
comparisonOperator: value.comparisonOperator,
attributeValueList:
value.attributeValueList.map(toAttributeValue).toList(),
))),
limit: limit,
projectionExpression: projectionExpression,
queryFilter: queryFilter?.map((key, value) => MapEntry(
key,
Condition(
comparisonOperator: value.comparisonOperator,
attributeValueList:
value.attributeValueList.map(toAttributeValue).toList(),
))),
returnConsumedCapacity: returnConsumedCapacity,
scanIndexForward: scanIndexForward,
select: select,
);
return QueryOutputDC(
consumedCapacity: qr.consumedCapacity,
count: qr.count ?? 0,
scannedCount: qr.scannedCount ?? 0,
items: qr.items?.map((e) => e.toJson()).toList() ?? [],
lastEvaluatedKey: qr.lastEvaluatedKey?.toJson() ?? {},
);
}