DynamoDB表建模。软删除解决方案

时间:2017-11-29 09:48:49

标签: amazon-web-services database-design amazon-dynamodb

Hello stackoverflow社区。 我正在尝试为dynamodb组织软删除解决方案。

如果你遇到同样的问题并找出任何解决方案,请分享评论。

它涉及到思考: 列出项目(isDeleted:false或0),并使用结果限制。

1 个答案:

答案 0 :(得分:0)

我们需要使用任何数据(0/1)创建RANGE索引,例如Number

就我而言,未删除的项目为"isActive = 1"

然后我们使用该IndexName进行查询或扫描。

为了使项目软删除,我们需要删除属性"isActive"

DynamoDB Scan and Query with Index

Official Best Practice: Take Advantage of Sparse Indexes - 描述了我们的案例。

要删除属性,请使用此示例:

const params = {
      TableName: this.TABLE,
      Key: {
        _id: id
      },
      UpdateExpression: 'REMOVE isActive',
      ReturnValues: 'ALL_NEW'
    }
    return dynamodb.update(params).promise()
      .then((data) => {
        if (data) {
          return data.Attributes
        }
        return null
      })