Я веду список подписчиков и отслеживаю размер списка одновременно
У меня есть атрибут, который представляет собой набор строк, и другой атрибут, который отслеживает количество элементов в наборе строк. Я делаю это, обновляя оба атрибута одновременно. Как защитник, я хочу, чтобы число увеличивалось только тогда, когда новый элемент еще не существует в наборе. Набор по природе не будет обновляться, если элемент уже находится в нем.
Вот параметры, которые я использую для вызова обновления:
const paramsForUpdatingUserBeingFollowed = {
TableName: process.env.usersTableName,
Key: {
userId: userBeingFollowed
},
ConditionExpression: "NOT(contains(isFollowedBy, :userMakingRequest))",
UpdateExpression:
"ADD isFollowedBy :userMakingRequest, isFollowedByCount :num",
ExpressionAttributeValues: {
":userMakingRequest":
dynamoDbLib.docClient.createSet([userMakingRequest]) || null,
":num": 1
},
ReturnValues: "ALL_NEW"
};
Я ожидаю, что действие обновления завершится неудачноесли элемент уже существует в наборе. Выражение условия, кажется, не имеет никакого эффекта;атрибут все еще обновляется.