dynogels 更新破坏其他密钥对

dynogels update trashing other keypairs

任何有 dynogels 经验的人都可以在这方面帮助我。

我的 dynamodb 的简化示例 table 具有嵌套结构

{
  key: xxxxx,
  maintenance: {
    date1: xxxxxxxx,
    date2: xxxxxxxx
  }
}

如果我更新 table 并将以下内容作为更新参数发送

key: 1,
maintenance: {
  date2: 1970-01-18T09:45:55.452Z
}

然后日期 1:在 table

中从我的项目中删除

我在更新调用中是否有一些配置选项让我遗漏了某处以不删除我不想删除的值touch/update?

谢谢

您可以在 UpdateExpression 中使用点符号来设置嵌套属性的值。

var params = {};
params.UpdateExpression = 'SET #maintenance.date2 = :date2';
params.ExpressionAttributeNames = {
  '#maintenance' : 'maintenance',
};

params.ExpressionAttributeValues = {
  ':date2' : '1970-01-18T09:45:55.452Z',
};

Model.update({key : 1}, params, function (err, model) {});