2016-11-18 3 views
1

В моей таблице DynamoDB у меня есть 2 столбца: один со строками, называемый «id», а другой с целыми числами, называемый «цена».Получите целые числа из столбца DynamoDB таблицы и вычислите их сумму

В моем приложении у меня есть идентификаторы, сохраненные в String[]. Я хочу получить цену за каждый идентификатор и рассчитать их сумму.

У меня уже есть класс DynamoDB Mapper:

@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; 
    } 
} 

Что мне нужно знать, как я могу получить только цены идентификаторов в массиве, и вычислить их сумму. Не могли бы вы мне помочь?

ответ

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, вы можете получить price для всех Product с и просуммировать их.

Смежные вопросы