node.js - 根据条件更新 dynamodb 项目

标签 node.js amazon-dynamodb

我只想更新 DynamoDB 中的项目,前提是新项目的日期比现有项目的日期更新。目前,我正在查询现有项目,在我的代码中进行比较,然后写入数据库。我想知道是否有办法让 DynamoDB 在单个查询中进行检查和更新。我使用了条件表达式,但即使条件满足,它也不会更新值。 我正在使用 nodejs。

最佳答案

我已经通过使用找到了解决方案

Expected

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 的值更新为 Value 1

关于node.js - 根据条件更新 dynamodb 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47228874/

相关文章:

node.js - 在nodejs(express)中将neo4j的创建约束语句放在哪里?

node.js - NPM 7.0.0 的工作空间是否需要 Lerna?

python - 如何检查 DynamoDB 表是否存在?

java - 带 GSI 的 dynamodb 过滤器

database - 如何使用boto3在dynamodb中查询大于排序键

amazon-web-services - 用 DynamoDB 中的新项目替换旧项目

javascript - nodeJS 异步与同步

javascript - 无法向 Node 服务器发出发布请求

node.js - 将 Bunyan 应用于大型 Node 应用程序的推荐方法?

javascript - 如何将AWS DynamoDB docClient.get项目放入变量中?