DynamoDB получить количество предметов
Этот код возвращает весь набор элементов, где мне нужно только его количество. Можно ли получить только количество элементов для этого индекса?
AWSDynamoDBObjectMapper *objectMapper = [AWSDynamoDBObjectMapper defaultDynamoDBObjectMapper];
AWSDynamoDBQueryExpression *queryExpression = [AWSDynamoDBQueryExpression new];
queryExpression.indexName = @"getVideoViews";
queryExpression.keyConditionExpression = @"#videoId = :val";
queryExpression.expressionAttributeNames = @{
@"#videoId" : @"videoId",
};
queryExpression.expressionAttributeValues = @{
@":val": videoId,
};
__weak typeof(self) weakSelf = self;
[objectMapper query:[ViewedVideos class]
expression:queryExpression
completionHandler:^(AWSDynamoDBPaginatedOutput * _Nullable response, NSError * _Nullable error) {
if (!error) {
dispatch_async(dispatch_get_main_queue(), ^{
if ([weakSelf.delegate respondsToSelector:@selector(serverConnectionHandlerReceivedNumberOfVideoViews:)]) {
[weakSelf.delegate serverConnectionHandlerReceivedNumberOfVideoViews:3];
}
});
}
}];
Как здесь, например:
aws dynamodb scan --table-name <TABLE_NAME> --select "COUNT"
1 ответ
Вы можете использовать API DescribeTable: http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTable.html
Существует атрибут "itemCount". Имейте в виду, что это не прямые данные (обновляются каждые 6 часов). Поэтому, если вы ищете данные в реальном времени, вам необходимо выполнить полное сканирование таблицы. Однако полное сканирование таблицы не рекомендуется, потому что оно может быть дорогим в зависимости от размера вашего стола.