我知道我们可以通过两个操作进行更新,首先通过查询数据库获取主键,然后通过put操作更新它。但DynamoDB是否支持通过一个操作更新关系数据库(如mysql)?由于两次操作将花费更多时间进行网络传输。DynamoDB是否支持更新操作(如关系数据库)
我的情况是这样的: 我有一个表A与字段ID,名称,位置,值。
而名称+位置可以唯一地定义一行。 所以现在我想在名称和位置满足某些条件时更新字段“值”,但我不知道该ID。因此,如果我使用mysql,那么我可以通过“更新设置值= XXX其中name =”abc“和location =”123“”来更新它。 但是当我使用dynamoDB时,我必须先获得主键ID。 然后使用密钥更新该项目。所以我的问题是,DynamoDB是否也支持与MySQL类似的更新操作。 谢谢!
我的情况是: 我有场ID,名称,位置值的表一。 名称+位置可以唯一地定义一行。所以现在我想在名称和位置满足某些条件时更新字段“值”,但我不知道该ID。因此,如果我使用mysql,那么我可以通过“更新设置值= XXX其中name =”abc“和location =”123“”来更新它。但是当我使用dynamoDB时,我必须先获得主键ID。然后使用密钥更新该项目。所以我的问题是,DynamoDB是否也支持与MySQL类似的更新操作。 谢谢! – Joey
DynamoDB不支持您所描述的功能,但我建议您阅读文档/开发人员指南。据我所知,你甚至不需要一个ID,或者你可以让ID是一个属性。 – Hanny
DynamoDB不支持您描述的功能,但我建议您阅读文档/开发人员指南,特别是关于散列和范围键的内容。解决您的问题是数据模式。由于_name_和_location_是唯一的,所以您可以设置hash-key = _name_和range-key = _location_(反之亦然,选择最具多样性的散列键),这样您就可以一步更新该行。你甚至不需要_ID_,或者你可以让_ID_成为一个属性。这里是链接[数据模型](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html) – Hanny