MongoDB实现评论榜
Mongodb很适合做这件事,api的调用仅仅是使用到了入门级别的CRUD,理清楚了思路,编码也会顺风顺水,所以你会发现我在这篇博客中说的比编码还多 评论榜预期的功能就像是StackOverFlow的那样,用户可以发出自己的提问,其他用户来解答,同时楼主可以回复别人的评论,别人依然可以回复楼主 数据结构mongodb可以存储文档啊,其实我们要做的就是构建一个合适的类,评论帮也就成功一大半了 问题/ 评论 实体如下问题
评论
思路Answer实体中,并没有添加一个集合用来存放Answer类型的实体,如果添加上这个集合的话,确实想法还不错,回复中有其他人对自己的回复,天生的树形结构,但是考虑到前端的渲染的难度加大,放弃了这种方案 问题的实体类中维护了一个回答的实体类的集合,所有针对楼主问题的回答实例全部放在这个集合中,也包括楼主对问题回答者的回复,还包含回答者对问题的回复 于是这样就仅仅存在两层,一个问题中维护着对这个问题的全部回复,前端渲染的难度大大降低,但是后来却来事了 用户查询一个问题的详情时,后端如何处理当用户查询一个问题的详情时,后端拿着问题的id,去数据库中将问题的实例取出来,紧接着处理Answer集合,将按照时间排序的集合按照我们指定的方式分组,再按时间排序 按什么分组呢? 当时是按照不同的用户分组,同一个用户的全部评论,已经楼主对它的回复,以及别人对它的回复都放在一起,所以需要一个字段,group(我选的用户id),专门存储分组的标志. 组内的实例再按照时间排序,这样整体的层次就划分好了
定位出当前用户的评论如果前端想在页面的分左右两部分展示自己的评论和别人的评论,就需要一个标记,既然上面都已经在遍历了,多加一个判断也无妨,拿着前端提交过来的用户id和Answer中的userId比对,如果相等,就把这个评论的flag标记为true,前端根据这个标记区分,从而给用户更多的权限,比如删除自己的评论 ???局限性???如果没个问题都像网易音乐那种,上万条评论,这样的话,估计就废了,虽然使用stream会快,但是也扛不住量啊,但是数量小的话,还是可以接受的,其实理想的状态是评论可以以分页的形式获取出来,感觉才正宗 2019/9/13 补充发现了一个新的原生查询语句,可以限制查询对象中数组的长度,以及查询范围 感兴趣可以看这个连接 https://blog.csdn.net/leshami/article/details/55049891 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c# – 事务死锁,如何设计正确?
- ruby-on-rails – 检查Rails 3中是否存在路由
- ruby-on-rails – JasmineRice on Rails 4
- c# – 如何将LINQ to SQL Distinct()运算符应用于List?
- Oracle优化10-SQL_TRACE和10046事件-更新中
- ruby-on-rails – Rspec:如何创建模拟关联
- c – 用于唯一标识我的应用当前正在运行的机器的Crossplatf
- 【Cocos2dx】新建场景、场景的切换、设置启动场景与菜单的新
- c – 使用boost :: regex获取sub-match_results
- C模板过度使用