Hello stackoverflow社区。 我正在尝试为dynamodb组织软删除解决方案。
如果你遇到同样的问题并找出任何解决方案,请分享评论。
它涉及到思考: 列出项目(isDeleted:false或0),并使用结果限制。
答案 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
})