开发者社区> 问答> 正文

MongoDB如何设计多对多的关系

比如说文章和Tag,在SQL下可以这么设计
screenshot
那么,如果用MongoDB的思想,该如何设计这种关系呢?
在查询方面这些语句又该怎样写:
1.列出所有Tag
2.列出所有文章及其Tag
3.列出某Tag下的所有文章

展开
收起
蛮大人123 2016-02-13 16:11:00 6881 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    结构:
    一个post collection
    screenshot
    列出所有Tag
    screenshot
    结构简单的做法是使用 mongodo 的 distinct 语法,但是性能不好说(感觉是属于一种简单的MapReduce)。
    在数据量大的情况下如果性能达不到要求也可以再加一个tags的collection,在每次增删改的时候对tags collection进行inc操作,顺带统计了tag的数量。
    列出所有文章及其Tag
    screenshot
    就能得到上面所有文章和tag
    列出某Tag下的所有文章
    screenshot
    另外发现过一种更简洁的方式:
    screenshot
    也是可以的

    2019-07-17 18:42:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
开源数据库 MongoDB 专场 MongoDB疑难杂症分析及优化 立即下载
开源数据库MongoDB专场MongoDB疑难杂症分析及优化 立即下载
MongoDB最佳实践及问题案例分析 立即下载