Простой ответ: вы просто обновляете дублированные элементы :) Избыточные данные AFAIK предпочтительнее в базах данных NoSQL, и нет никаких ярлыков для обновления данных.
Это, конечно, лучше всего работает, когда соотношение чтения / записи данных сильно на стороне чтения. И в большинстве повседневных приложений это так (мое внутреннее ощущение, что это может быть неправильно), поэтому обновления данных редки по сравнению с запросами.
DynamoDB имеет несколько утилит, которые могут быть применимы здесь. Оба имеют свои недостатки, хотя
- BatchWriteItem позволяет помещать или удалять несколько элементов в одной или нескольких таблицах. К сожалению, он не позволяет обновления, поэтому, вероятно, не относится к вашему делу. Количество операций также ограничено 25.
- TransactWriteItems позволяет выполнить элементарную операцию, которая группирует до 10 запросов на действия в одну или несколько таблиц. Опять же количество операций ограничено для вашего случая
Насколько я понимаю, оба они должны использоваться с осторожностью и вниманием, поскольку они могут вызвать, например, узкие места в производительности. Простой способ обновления каждого элемента в отдельности обычно очень удобен. А поскольку данные избыточны, вы можете использовать асинхронные операции для параллельного выполнения нескольких обновлений.