2016-11-18 5 views
1

DynamoDBテーブルには、「id」という文字列と「price」という整数の2つのカラムがあります。テーブルのDynamoDBカラムからいくつかの整数を取得し、その合計を計算します。

私のアプリでは、IDはString[]に保存されています。私は各IDの価格を求め、その合計を計算したいと思います。私はすでにDynamoDBのマッパークラスを持っている

@DynamoDBTable(tableName = "Products") 
public class Product { 

    private String id; 
    private String price; 

    @DynamoDBAttribute(attributeName = "id") 
    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    @DynamoDBAttribute(attributeName = "price") 
    public String getPrice() { 
     return price; 
    } 

    public void setPrice(String price) { 
     this.price = price; 
    } 
} 

私は必要なものは、私は、配列内のIDの唯一の価格を得ることができる方法を知って、その合計を計算することです。手伝ってくれませんか?

答えて

0

DynamoDBでは集計を行うことができないため、アプリケーション層で処理する必要があります。

擬似コード(あるとしてコンパイルされない場合があります):

List<Product> itemsToGet; 
for (int i = 0; i < idArray.length; i++) { 
    Product p = new Product(); 
    p.setId(idArray[i]); 

    itemsToGet.add(p); 
} 
Map<String, List<Object>> items = dynamoDBMapper.batchLoad(itemsToGet); 
Map.Entry<String, List<Object>> firstEntry = items.entrySet().iterator().next(); // the Map will contain only one entry, because you are querying for only one table. 
List<Product> productsFromDynamoDB = firstEntry.getValue(); 

productsFromDynamoDBから、あなたはすべてのProduct秒間priceを取得し、それらを合計することができます。

関連する問題