比如说文章和Tag,在SQL下可以这么设计
那么,如果用MongoDB的思想,该如何设计这种关系呢?
在查询方面这些语句又该怎样写:
1.列出所有Tag
2.列出所有文章及其Tag
3.列出某Tag下的所有文章
结构:
一个post collection
列出所有Tag
结构简单的做法是使用 mongodo 的 distinct 语法,但是性能不好说(感觉是属于一种简单的MapReduce)。
在数据量大的情况下如果性能达不到要求也可以再加一个tags的collection,在每次增删改的时候对tags collection进行inc操作,顺带统计了tag的数量。
列出所有文章及其Tag
就能得到上面所有文章和tag
列出某Tag下的所有文章
另外发现过一种更简洁的方式:
也是可以的
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。