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

3

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

如果您对同样的问题有想法并找到任何解决方案,请在评论中分享。

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

1个回答

4
我们需要创建一个RANGE索引,例如带有任何数据(0/1)的Number
在我的情况下,对于未删除的项目,它是"isActive = 1"
然后,我们使用该IndexName进行查询或扫描。
为了使项目软删除,我们需要删除属性"isActive"使用索引进行DynamoDB扫描和查询 官方最佳实践:利用稀疏索引 - 在这里描述了我们的情况。
要删除属性,请使用此示例:
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
      })

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接