【发布时间】:2019-07-30 14:53:53
【问题描述】:
我想使用相当于 sql 的 like (%) 条件的条件更新 dynamoDB 表的现有项
opIdUserId 状态
- 123-U1 进行中
- 345-U2 进行中
- 123-U3 暂停
我的 dynamodb 中的 opIdUserId 是 主分区键。我想将 opIdUserId 字段值从 123 开始或包含 123 的状态更新为 COMP。
这是我目前正在尝试的,但经过研究发现我无法使用 KeyConditionExpression 进行更新。
const AWS = require('aws-sdk');
const docClient = new AWS.DynamoDB.DocumentClient({region: 'eu-west-1'});
var table = "tablename";
exports.handler = function(event, context, callback){
var params = {
TableName: table,
KeyConditionExpression: "begins_with(opIdUserId, :i)",
UpdateExpression: "set operationStatus = :o",
ExpressionAttributeValues:{
":o":"COMP",
":i":"123-"
},
ReturnValues:"UPDATED_NEW"
};
docClient.update(params, function(err, data) {
if (err) {
callback(err, null);
} else {
callback(null,data);
}
});
}
请建议我如何在特定条件下更新我在 dynamoDB 中的项目。
【问题讨论】:
-
您应该扫描与您的关键条件表达式匹配的所有项目,然后逐项更新它们。
标签: amazon-web-services lambda aws-lambda amazon-dynamodb dynamodb-queries