为旧行dynamodb的新列空白

时间:2016-05-03 07:05:59

标签: c# amazon amazon-dynamodb

我正在使用c#。

我在dynamodb中有数千行,如

Old Rows

现在我插入了更多行,但列数不同

Row 3 and Row4 are new rows

此处第3行和第4行是新行

现在我需要如下结构

Rows with default value

现在我希望旧行应该有新列的默认值0或空行字符串

我不想迭代旧行和更新的项目。

有没有办法设置默认值..

2 个答案:

答案 0 :(得分:0)

您尝试实现的目标并不适用于NoSQL类型的数据库。从技术上讲,DynamoDB没有行和列的概念。相反,有些项目(您的记录)包含任意数量的属性。您可以阅读更多相关信息here

如果您正在使用对象映射器,我建议在该级别处理此逻辑,即。从DynamoDB获取项目时,如果需要,可以在那里分配默认值。

答案 1 :(得分:0)

无法使用DynamoDB查询存档。 DynamoDB只“知道”索引键(分区键,排序键和二级索引),并且无法告诉您表中存在的所有属性的名称(与关系数据库不同)。

我唯一能想到的是:

  • 扫描整个数据库
  • 将所有媒体资源名称存储在例如:一个HashSet<T>
  • 对于每个项目:添加缺少的属性,确定默认值并更新它