I want to retrieve list of items from dynamodb table based on some filters. In Filters, I have my list of hash keys (records having one of that hash key should be returned) and few more filters on the record, for example a "status" field having value as "approved". So if the item is having hash key from my list AND status field value is "approved" it should be returned. 
How can I do that ? 
I cannot use QUERY because according to my understanding it expects only 1 hash key value. 
I cannot use BatchGet because it does not accept filter expression. 
            Asked
            
        
        
            Active
            
        
            Viewed 3,259 times
        
    6
            
            
        
        Aakash Mangal
        
- 125
 - 3
 - 12
 
1 Answers
4
            
            
        You can user BatchGet to get the items, and filter them by your own function. 
A Query operation can retrieve a maximum of 1 MB of data. This limit applies before the filter expression is evaluated.
As you see, use filter expression cannot help you to retrieve more data, which also cannot save your read capacity(money). So I think it make no difference to filter locally or server-side.
If you want dynamo to do the heavy lifting filtering the data for you, then you can try "multi-query" instead of BatchGet.
Here is some relevant references, What's the difference between BatchGetItem and Query in DynamoDB?
        Sky.Li
        
- 497
 - 1
 - 6
 - 16