2011-09-25 19 views
7

Ok, así que vengo de un fondo mySQL y ahora estoy tratando de reconstruir un sitio usando nodeJS y Mongoose. Mi viejo esquema MySQL parecía algo como esto (simplificado):Mongoose: Esquema de base de datos sugerido

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 

Puede alguien sugerir la mejor manera de reestructurar este viejo esquema de MySQL para trabajar con la mangosta?

Respuesta

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 

Si usted está preocupado por el tamaño comentario (actualmente mongodb tamaño del documento máximo es de 16 MB), puede moverlo a otro doc

De esta forma se pueden encontrar los usuarios del grupo de

db.users.find({Groups:'groupid1'}) 

también los grupos que pertenece el usuario

db.users.find({id:userid},{Groups:1}) 

i f que quería recuperar la información relevante grupo con la consulta anterior, le sugiero que le permite almacenar más frecuentemente acceder a campos de grupo también con users.groups, como este

users 
    user_ID 
    user_name 
    user_email 
    user_password 
    Groups 
    - { grupid 1,name} 
    - {grupid 2,name} 
    - {grupid 3,name} 
Cuestiones relacionadas