如何正确构造 Dynamodb 以具有嵌套或链接属性?
How to structure Dynamodb correctly to have nested or linked properties?
我正在开始使用 Dynamodb,我正在尝试找出构造以下内容的正确方法:
我有一个用户,每个用户可以有多张图片(s3链接和一些元数据),没有数量限制。
每当我呼叫用户时,我会检索他们所有的图片,单张图片不会被读取,并且每次用户上传图片时,我都需要为用户存储。
在 Mongodb 中,我会创建一个名为 pictures
的数组,其中包含包含每张图片数据的对象。这也是 Dynamodb 中的正确方法吗?
以下是使用 dynamodb 的方法
| pk | sk |
| user1 | metadata | age:24 | name: Jon| ...
| user1 | picture#1234#id1 | url:abc.com/xyz.jpeg | ... some other metadata
| user1 | picture#2456#id2 | url:abc.com/xyz.jpeg | ... some other metadata
| user1 | picture#4567#id3 | url:abc.com/xyz.jpeg | ... some other metadata
其中1234、2456可能代表上传图片的纪元时间。
现在您可以执行
之类的查询
按时间顺序给我所有的照片。
Select * from table where pk=user1 and sk starts with picture#
给我所有上传的图片 b/w 或特定日期之后。
Select * from table where pk=user1 and sk starts with picture# and sk>picture#1234
获取用户详细信息
Select from table where pk=user1 and sk=metadata
这将确保一些事情
上传图片时没有比赛condition/lock
您可以决定要获取多少张图片,您将只读取您需要的图片,而不是加载所有图片然后过滤。
我正在开始使用 Dynamodb,我正在尝试找出构造以下内容的正确方法:
我有一个用户,每个用户可以有多张图片(s3链接和一些元数据),没有数量限制。
每当我呼叫用户时,我会检索他们所有的图片,单张图片不会被读取,并且每次用户上传图片时,我都需要为用户存储。
在 Mongodb 中,我会创建一个名为 pictures
的数组,其中包含包含每张图片数据的对象。这也是 Dynamodb 中的正确方法吗?
以下是使用 dynamodb 的方法
| pk | sk |
| user1 | metadata | age:24 | name: Jon| ...
| user1 | picture#1234#id1 | url:abc.com/xyz.jpeg | ... some other metadata
| user1 | picture#2456#id2 | url:abc.com/xyz.jpeg | ... some other metadata
| user1 | picture#4567#id3 | url:abc.com/xyz.jpeg | ... some other metadata
其中1234、2456可能代表上传图片的纪元时间。 现在您可以执行
之类的查询按时间顺序给我所有的照片。
Select * from table where pk=user1 and sk starts with picture#
给我所有上传的图片 b/w 或特定日期之后。
Select * from table where pk=user1 and sk starts with picture# and sk>picture#1234
获取用户详细信息
Select from table where pk=user1 and sk=metadata
这将确保一些事情
上传图片时没有比赛condition/lock
您可以决定要获取多少张图片,您将只读取您需要的图片,而不是加载所有图片然后过滤。