Я хочу сделать условную вставку, используя условие Exists для свойства Expected DocumentClient SDK для nodejs
У меня есть следующая функция, которая вставляет в таблицу динамодба и задает условия, предотвращающиедубликаты
function async save(model) {
const params = {
TableName: 'table-name',
Item: model,
Expected: {
parentId: { Exists: false },
companyLegalId: { Exists: false },
agentLegalId: { Exists: false }
}
};
return await dynamoDB.put(params).promise();
}
И я вызываю эту функцию так:
const model = {
parentId: 'c0f91177-ea46-4aae-9dba-a00dfe948fe5',
objectId: 1,
agentId: '123456789-0',
companyLegalId: '987654321-K'
};
const model2 = {
parentId: 'c0f91177-ea46-4aae-9dba-a00dfe948fe5',
objectId: 2,
agentId: '123456789-0',
companyLegalId: '987654321-K'
};
await save(model);
await save(model2);
В этой таблице есть HashKey = parentId и RangeKey = objectId.То, как оба объекта имеют разные RangeKey, это допустимая операция для DynamoDB.Но я ожидаю, что условие «ожидаю» проверяет наличие «того же» элемента и выдает ошибку, но этого не происходит.
Что я делаю не так?