我正在运行用Node.js编写的AWS Lambda服务,该服务与DynamoDB数据库交互.我的一种方法在DynamoDB上执行更新(AWS.DynamoDB.DocumentClient().update)以更新特定项目.但问题是,当我尝试更新项目并且该项目不存在时,更新方法会将此新项目添加到我的表格中.此行为也是文档中描述的默认行为.
我不希望我的方法创建一个新项目,如果它尚不存在.我希望这只是在记录存在时才更新.如果它不存在,它必须什么都不做.我该如何实现这一目标?我希望我能够使用ConditionalExpression来实现这一目标,但我在这方面所做的尝试并没有成功.
下面给出了我发送给更新功能的当前参数的示例.在此示例中,我想更新具有userId 123的用户,并且我想为此用户将isActive字段设置为"false"(但我只想在用户123实际存在的情况下执行此操作!)
const params = {
TableName: 'users',
Key: {
userId: '123',
},
ExpressionAttributeValues: {
':isActive': 'false'
},
UpdateExpression: 'SET isActive = :isActive',
ReturnValues: 'ALL_NEW',
};
Run Code Online (Sandbox Code Playgroud)