我需要查询 DynamoDB 表以获取行数的帮助。
考虑一下,我有一个表“用户”,其中包含三个字段,“用户名”、“密码”和“用户类型”。UserType 可以是“Admin”、“Employee”或@“Guest”。现在我想获得表中“管理员”的计数。在 SQL 中,我们这样编写查询,
SELECT COUNT(*) FROM Users WHERE UserType='Admin'
现在我需要使用 DynamoDB iOS SDK 做同样的事情。现在,我正在这样做。
- (int)adminUsersCount {
DynamoDBScanRequest *request = [[[DynamoDBScanRequest alloc] initWithTableName:@"Users"] autorelease];
DynamoDBCondition *condition = [[[DynamoDBCondition alloc] init] autorelease];
NSMutableArray *attrList = [NSMutableArray arrayWithObject:[[[DynamoDBAttributeValue alloc] initWithS:@"Admin"]] autorelease]];
condition.attributeValueList = attrList;
condition.comparisonOperator = @"EQ";
[request setScanFilterValue:condition forKey:@"UserType"];
DynamoDBScanResponse *response = [[AmazonClientManager ddb] scan:request];
return response.items.count;
}
在这里,我正在获取所有行以了解该计数。我知道这不是正确的方法,而且确实是个坏主意。我不知道如何在不获取所有行的情况下单独获得计数。
- 我想知道如何在 iOS SDK 中做到这一点。
- 我也想知道如何在 PHP SDK 中做到这一点。
谢谢。