行数を取得するためにDynamoDBテーブルをクエリするのに助けが必要です。
「UserName」、「Password」、「UserType」の3つのフィールドを持つテーブル「Users」があるとします。UserTypeは、「Admin」、「Employee」、または@「Guest」のいずれかです。次に、テーブル内の「管理者」の数を取得します。SQLでは、次のようなクエリを記述します。
SELECT COUNT(*) FROM Users WHERE UserType='Admin'
次に、DynamoDBiOSSDKを使用して同じことを行う必要があります。今のところ、こうやってやっています。
- (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;
}
ここでは、その数を知るためにすべての行をフェッチしています。私はこれが正しい方法ではなく、本当に悪い考えであることを知っています。すべての行をフェッチせずに、カウントだけを取得する方法がわかりません。
- iOSSDKでそれを行う方法を知りたいです。
- PHPSDKでもそれを行う方法を知りたいです。
ありがとう。