0

このコードのように 1 つのビデオ アイテムだけではなく、多くの videoIds のアイテムを取得したいですか? インデックスから複数のアイテムをクエリする方法はありますか?

AWSDynamoDBObjectMapper *objectMapper = [AWSDynamoDBObjectMapper defaultDynamoDBObjectMapper];
AWSDynamoDBQueryExpression *queryExpression = [AWSDynamoDBQueryExpression new];

queryExpression.indexName = @"getVideoItem";
queryExpression.keyConditionExpression = @"#id = :id";
queryExpression.expressionAttributeNames = @{
                                             @"#id" : @"id",
                                             };
queryExpression.expressionAttributeValues = @{
                                              @":id" : videoId,
                                              };
__weak typeof(self) weakSelf = self;

[objectMapper query:[PublicVideos class]
         expression:queryExpression
  completionHandler:^(AWSDynamoDBPaginatedOutput * _Nullable response, NSError * _Nullable error) {
      if (!error) {
          dispatch_async(dispatch_get_main_queue(), ^{
              if ([weakSelf.delegate respondsToSelector:@selector(ServerConnectionHandlerVideoListRecevied:)]) {
                  [weakSelf.delegate ServerConnectionHandlerVideoListRecevied:response.items];
              }
          });
      }
  }];
4

1 に答える 1

1

テーブルのスキーマはどのように見えますか? テーブルに対してハッシュ キーと範囲キーの両方が有効になっていますか? 範囲キーがない場合、ハッシュ キーごとに 1 つのエントリしかなく、クエリは 1 つの行のみを返します。

ハッシュ キーと範囲キーの両方がある場合は、次のようにクエリを実行します。

AWSDynamoDBObjectMapper *objectMapper = [AWSDynamoDBObjectMapper defaultDynamoDBObjectMapper];
AWSDynamoDBQueryExpression *queryExpression = [AWSDynamoDBQueryExpression new];
queryExpression.indexName = @"Artist-Album-index";
queryExpression.keyConditionExpression = @"#artist = :artist AND #album < :album";
queryExpression.expressionAttributeNames = @{
                                                 @"#artist" : @"Artist",
                                                 @"#album" : @"Album",
                                                 };
queryExpression.expressionAttributeValues = @{
                                                  @":artist" : @"valuetosearch",
                                                  @":album" : @"valuetosearch",
                                                  };
[objectMapper query:[Song class]
             expression:queryExpression
      completionHandler:^(AWSDynamoDBPaginatedOutput * _Nullable response, NSError * _Nullable error) {
          dispatch_async(dispatch_get_main_queue(), ^{
              // handle response
          });
      }];

上記のスニペットでは、'<' の条件に一致するアーティストのすべてのアルバムを検索しようとしています。

于 2016-10-06T20:50:26.297 に答える