问题描述
我想使用无服务器(用于托管FE的AWS Lambda + DynamoDB + S3)创建文章应用程序。 我对“ 1表方法”有一些疑问。 我要执行的操作:
- 获取按日期排序的最新(6)文章
- 通过id获取文章
- 获取相对于已打开文章的上一篇/下一篇文章(基于创建日期)
- 通过标签获取相关文章
- 按文章获取评论
我的第一个问题是动作nr。 1,我无法获得所有基于日期的文章,我将文章的SK添加为日期,但是因为PK有单独的文章,每篇文章的ID为:article-1,article-2 ..等,我不知道如何仅通过SK获取所有文章。
然后我尝试创建LSI,但随后我注意到LSI需要使PK与表相同,因此我可以根据LSI type ='ARTICLE'进行选择,但仍无法按日期选择它们(entities_sort值)
我知道AWS表示PK具有独特的优势,但是在这种情况下如何对数据分组?
这可以帮助我获取按类型(GSI2PK)='ARTICLE'的文章,并按entities_sort(GSI2SK)进行排序,但是没有更好的方法吗?将您的文章作为PK放在表中,但是仍然能够以某种方式使它们按日期排序?
具有GSI1PK和GSI1SK的这种方式-我可以使用反向查找获得文章的所有注释,所以很好。
但是我仍然也不知道如何实现数字3。获取相对于打开的文章的上一篇/下一篇文章(基于创建日期):按ID获取文章,检查其创建日期(entities_sort),然后以某种方式基于创建日期(entities_sort)前后获取下一篇文章,DynamoDB中是否有一个功能可以为我做到这一点?
在我的方法中,我尝试查询/处理尽可能少的项目,所以我不想使用过滤器功能,而希望对信息进行分区。
我的问题是,我应该如何实现1和3?难道不是为了这么少的动作而创建2个GSI吗?
在PK上有ID唯一但又能够按创建日期排序的文章的方式是什么?
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)