Mongoose:建议的数据库架构

wil*_*age 7 mongoose mongodb nosql node.js

好的,我来自mySQL背景,现在正尝试使用nodeJS和Mongoose重建网站.我的旧mySQL架构看起来像这样(简化):

users
  user_ID
  user_name
  user_email
  user_password

groups
  group_ID
  group_name
  group_description

groupusers
  groupuser_ID
  group_ID
  user_ID

comments
  comment_ID
  group_ID
  user_ID
  comment_txt
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议重构这个旧的mySQL架构以使用Mongoose的最佳方法吗?

Ram*_*Vel 5

users
  user_ID
  user_name
  user_email
  user_password
  Groups
     - grupid 1
     - grupid 2
     - grupid 3

groups
  group_ID
  group_name
  group_description
  comments
    1 - 
       user_ID
       comment_txt
    2 -
       user_ID
       comment_txt 
Run Code Online (Sandbox Code Playgroud)

如果您担心评论大小(目前mongodb最大文档大小为16 MB),您可以将其移动到其他doc

通过这种方式,您可以找到该组的用户

 db.users.find({Groups:'groupid1'})
Run Code Online (Sandbox Code Playgroud)

也是用户所属的组

   db.users.find({id:userid},{Groups:1})
Run Code Online (Sandbox Code Playgroud)

如果您想通过上述查询检索组相关信息,我建议您也将最常访问组字段存储在users.groups中,如下所示

users
  user_ID
  user_name
  user_email
  user_password
  Groups
     - { grupid 1,name}
     - {grupid 2,name}
     - {grupid 3,name}
Run Code Online (Sandbox Code Playgroud)