Filtering / Querying by the Contents of a List in DynamoDB

Tanaki picture Tanaki · Nov 17, 2014 · Viewed 11.7k times · Source

I am attempting to filter a DynamoDB query by the contents of a Map contained within a List. Here's an example of the structure I'm dealing with.

{
    'EventType': 'git/push'
    'EventTime': 1416251010,
    'Commits': [
        {
            'id': '29d02aff...',
            'subject': 'Add the thing to the place'
        },
        {
            'id': '9d888fec...',
            'subject': 'Spelling errors'
        },
        ...
    ]
}

The hash key is EventType and range key EventTime. I am trying to write a filter that filters the result of a query to a specific id. Is is possible to create a DynamoDB filter expression that correctly filters the query like this? (My first thought was to use contains (a, a), but I don't think that will work on a List of Maps.)

Answer

Johnny Wu picture Johnny Wu · Nov 20, 2014

This isn't currently supported by DynamoDB's API's expression language (as of November 2014) but there are some workarounds mentioned here.