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 часов). Поэтому, если вы ищете данные в реальном времени, вам необходимо выполнить полное сканирование таблицы. Однако полное сканирование таблицы не рекомендуется, потому что оно может быть дорогим в зависимости от размера вашего стола.

Другие вопросы по тегам