哪个在MongoDB中更好?将成员列表存储为对象或成员组关系集合中的数组

时间:2017-07-18 10:35:54

标签: mongodb database-design

我正在使用MongoDB构建社交应用程序。我有一个场景,我需要存储组中的用户列表及其与组的关系。存储它的优化方法是什么? 我遇到了两条路。

  • 保存组集合中的用户列表

    {
      "groupId":"",
      "admins":[
        "1234","2345","3422"
      ],
      "moderators":[
        "3242"
      ],
      "members":[
        "2354","9865","6747"
      ]
    }
    
  • 将组ID,用户ID,关系列为传统风格的单独集合中的列表

    {
      "groupId":"1234",
      "userId":"8764",
      "relation":"Admin"
    },{
      "groupId":"0987",
      "userId":"4345",
      "relation":"Member"
    },{
      "groupId":"0987",
      "userId":"3456",
      "relation":"Admin"
    },{
      "groupId":"0987",
      "userId":"7654",
      "relation":"Member"
    },{
      "groupId":"0987",
      "userId":"8765",
      "relation":"Member"
    }
    

    我的主要查询是

  • 列出具有关系的组成员

  • 按照首字母

  • 搜索成员
  • 列出用户所属的群组

哪种方法最适合上述要求。

**请原谅我的json格式在编辑器代码样式中不接受。

0 个答案:

没有答案
相关问题