【问题标题】:Remove last list item from DynamoDB?从 DynamoDB 中删除最后一个列表项?
【发布时间】:2016-03-04 06:47:16
【问题描述】:

我将 DynamoDB / Amazon Web Services 与他们的 SDK 对象持久性模型一起使用。我有一个对象类型,它有一些基本参数和一些存储的列表。这工作正常,列表作为字符串集存储在数据库中。要将对象保存回数据库,我只是调用:

context.Save<AwsProject>(project);

只要列表不为空,它就可以正常工作。如果我在列表中有项目,然后删除最后一个,创建一个空列表,这不会保存,最后一个项目保留在那里......

我错过了什么?我还需要做些什么来清除最后一个值吗?

【问题讨论】:

  • 您能否发布您的 AwsProject 课程的代码。可能会帮助我们弄清楚发生了什么。

标签: c# amazon-web-services amazon-dynamodb


【解决方案1】:

DynamoDB 不支持空集。请参阅DynamoDB Naming Rules and Data Types 文章的最后一句话。如果您的列表为空,则应完全删除存储该列表的属性。

【讨论】:

  • 嗯,我错过了,谢谢你的链接。我认为他们的 SDK 中的对象持久性框架会识别并删除该属性,但我想不会。所以我想我必须做一个特殊的情况来在代码中处理这个并自己删除属性。有没有办法通过上下文删除属性还是我需要降低到较低的级别?
  • 我不知道,因为我没有直接使用他们的 C# SDK。使用 Ruby SDK,我测试“empty-ness”或“blank-ness”,然后将属性上的操作设置为 DELETE 而不是 PUT。也许,有 C# 经验的其他人可以帮助回答您的问题。
  • 所以根据我上面的回答,我认为这是我的用户错误,他们的 SDK/API 确实可以处理我所期望的。我为您花时间提供有用的信息而对您的答案和评论进行投票,但我将自己的答案发布为已接受的答案。
【解决方案2】:

好的,我刚刚回到这个问题,我想我一定是在我的代码中做了其他事情,没有让它正确删除。我处理了其他一些事情并解决了一些保存问题,当我回来解决这个问题时,它就消失了。从我的集合中删除最后一项,然后使用上下文保存对象现在会删除该属性,而无需我明确这样做。很抱歉造成混乱,但看起来他们的 API 确实像我预期的那样处理了这个......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多