旧行新列的空白 dynamodb
Posted
技术标签:
【中文标题】旧行新列的空白 dynamodb【英文标题】:Blank for new columns for old rows dynamodb 【发布时间】:2016-08-28 02:59:58 【问题描述】:我正在使用 c#。
我在 dynamodb 中有数千行
现在我再插入几行,但列不同
喜欢
这里第 3 行和第 4 行是新行
现在我需要如下结构
现在我希望旧行应该有默认的 0 或新列的空白字符串,
我不想遍历旧行和更新的项目。
有没有办法设置默认值..
【问题讨论】:
您这样做是为了显示目的还是要在表格中存储“0”? 你没有说清楚为什么有这个有用,特别是因为你确认你看到它不适合 NoSQL。 【参考方案1】:您要实现的目标实际上不适用于 NoSQL 类型的数据库。从技术上讲,DynamoDB 没有行和列的概念。相反,有些项目(您的记录)包含任意数量的属性。你可以阅读更多关于它的信息here。
如果您使用的是对象映射器,我建议您在该级别处理此逻辑,即。从 DynamoDB 获取项目时,如果需要,您可以在那里分配默认值。
【讨论】:
是的,我知道这与 NoSql 概念背道而驰,而且我认为通过实施这个概念我们失去了 nosql 的好处,但是有人问我这个,这就是为什么我把它放在这里。 【参考方案2】:这不能使用 DynamoDB 查询存档。 DynamoDB 仅“知道”索引键(分区键、排序键和二级索引),无法告诉您表中存在的所有属性的名称(与关系数据库不同)。
我唯一能想到的是:
扫描整个数据库 将所有属性名称存储在例如HashSet<T>
对于每个项目:添加缺少的属性,分配您的默认值并更新它
【讨论】:
以上是关于旧行新列的空白 dynamodb的主要内容,如果未能解决你的问题,请参考以下文章