How do I delete from DynamoDB List of Maps, by Map attribute value in said List?

I've run into this issue a few times now, and unfortunately there's no straightforward solution. The two most common workarounds I've come across are:

A. use a map instead of a list, you can reference the favorite directly in your update expression now using #favorites.#entityId. If order is important, add an order attribute to each map. In your data access layer is where you would need to do your conversions to/from the desired array type.

{
  "userId": "2",
  "favorites": {
    "558da3de395b1aee2d6b7d2b": {
      "createdAt": 1448998673852,
      "entityId": "558da3de395b1aee2d6b7d2b",
      "type": "media",
    },
    // ... more entities here
  }
}

B. use one-to-many tables instead, see http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GuidelinesForItems.html