我有两个当前的表
用户表:
| user_id(主键)|此用户拥有的设备的 Map |
事件表:
| id_device(主键)| time_stamp(排序键)|数据列|绑定到此设备的用户 Map ,例如[{user_id:“A”},{user_id:“B”}] |
user_id:1可以有多个设备,例如1,2,3,4 user_id:2也可以修改相同的设备,也可以有不同的设备,例如2,3,4,5
事件表实际上是网络上任何设备发生的最新事件,表随着事件的发生而变大 .
我希望能够由用户查询设备的最新事件 .
方法1:我最初将使用dynamoDB API(BatchGetItem)并将设备映射作为键传递 . 但是,我不能这样做,因为我需要提供time_stamps .
Is there a way to scan/query the "map of users tied to this device" column such as only filtering for the "A" user in the map? I know scanning not recommended
方法2:只有id_device的二级索引作为主键 . 查询每个是否有最新事件并进入“与此设备绑定的用户 Map ” Map ,以查看所有者是否在那里 . 如果是这样,则附加到要返回的空数组 .
还有其他人有什么建议吗?谢谢!
1 回答
看看可用的ComparisonOperators
无需复制整个页面,您可以使用这些比较运算符
特别是你可能想要的
例如,给定设备ID,您可以找到所有相关用户,如下所示:
如您所见,这是一次扫描 . 在这种情况下,您无法使用查询 .