我想仅在新项目的日期比现有项目更新时才更新DynamoDB中的项目。目前,我正在查询现有项目,在我的代码中进行比较,然后写入db。我想知道是否有办法让DynamoDB在单个查询中进行检查和更新。我使用了conditionalexpression但是即使条件满足它也没有更新值。 我正在使用nodejs。
答案 0 :(得分:1)
我使用
找到了解决方案dynamodb的预期
子句。 以下是我的代码。
var params;
params = {
Key: {
"HashKey": {
S: "Value"
}
},
TableName: 'TableName',
AttributeUpdates: {
"Attr1": {
Value: {
S: "Value1"
}
}
},
Expected: {
"Attr2": {
"ComparisonOperator": "EQ",
"AttributeValueList": [ {S: "Value2"} ]
}
}
};
dynamodb_client.updateItem(params, function(err, data) {
if (err){
console.log(err);
} else {
console.log(data);
}
});
因此,如果Attr2等于Value2
,则上面的代码会将Attr1的值更新为值1