boto dynamodb2: Can I query a table using range key only?

后端 未结 3 881
暖寄归人
暖寄归人 2021-01-02 06:01

In one of my python application, I am using boto and I want to query a dynamodb table using range key only. I don\'t want to use scan.

Schema for ratings tab

3条回答
  •  挽巷
    挽巷 (楼主)
    2021-01-02 06:14

    In AWS SDKv2 you can scan table using AWSDynamoDBScanExpression, eg. iOS:

     AWSDynamoDBObjectMapper *dynamoDBObjectMapper = [AWSDynamoDBObjectMapper defaultDynamoDBObjectMapper];
     AWSDynamoDBScanExpression *scanExpression = [AWSDynamoDBScanExpression new];
     scanExpression.exclusiveStartKey = nil;
     scanExpression.limit = @20;
     [[[dynamoDBObjectMapper scan:[DDBTableRow class]
                       expression:scanExpression]
       continueWithExecutor:[BFExecutor mainThreadExecutor] withSuccessBlock:^id(BFTask *task) {...}
    

    If you need a condition can use AWSDynamoDBCondition:

     AWSDynamoDBCondition *condition = [AWSDynamoDBCondition new];
     AWSDynamoDBAttributeValue *attribute = [AWSDynamoDBAttributeValue new];
     attribute.N = @"400";
     condition.attributeValueList = @[attribute];
     condition.comparisonOperator = AWSDynamoDBComparisonOperatorEQ;
     scanExpression.scanFilter = @{@"latitude": condition};
    

提交回复
热议问题