Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
DynamoDB映射创建或更新(PHP)_Php_Amazon Dynamodb - Fatal编程技术网

DynamoDB映射创建或更新(PHP)

DynamoDB映射创建或更新(PHP),php,amazon-dynamodb,Php,Amazon Dynamodb,我想知道是否有更好的方法: 我目前正在DynamoDB的地图中为唯一的对象设置key+值。我的做法如下: 条件更新-如果属性\u不存在(映射\u名称)创建由键+值填充的新映射。(这是在条件检查失败异常的try/catch中,如果发生此异常,则返回false。) 如果我们没有创建映射(没有例外),请使用key+value更新映射:set map\u NAME.key=:value 我反对对逻辑流使用异常,但我不知道是否有其他方法在映射上创建或更新。请让我知道,或者如果我能以任何方式使这个问题更清楚

我想知道是否有更好的方法:

我目前正在DynamoDB的地图中为唯一的对象设置key+值。我的做法如下:

  • 条件更新-如果
    属性\u不存在(映射\u名称)
    创建由键+值填充的新映射。(这是在条件检查失败异常的try/catch中,如果发生此异常,则返回false。)
  • 如果我们没有创建映射(没有例外),请使用key+value更新映射:
    set map\u NAME.key=:value
  • 我反对对逻辑流使用异常,但我不知道是否有其他方法在映射上创建或更新。请让我知道,或者如果我能以任何方式使这个问题更清楚


    谢谢大家!

    查看您的特定示例会很有意思,但是您是否尝试调用“get”来查看该项是否存在


    编辑:这取决于你想做什么,可能有很多不同的解决方案。DynamoDB在这方面不如MongoDB灵活,有时需要创造性的解决方案来解决简单的问题。

    我没有。我喜欢使用UpdateItem的部分原因是,如果该项不存在,它会设置该项。获取肯定会阻止异常,也许是以牺牲呼叫为代价?您的更新通常使用get+set模式吗?不太喜欢此解决方案,可能会导致竞争状况。您是否曾为此找到其他解决方案?我也遇到了同样的问题。现在,我考虑的解决方案是将映射中的属性更改为顶级属性,但我更愿意保持模式不变。