Tengo dos tablas/colecciones; Usuarios y grupos. Un usuario puede ser miembro de cualquier cantidad de grupos y un usuario también puede ser propietario de cualquier cantidad de grupos. En una base de datos relacional probablemente tenga una tercera tabla llamada UserGroups con una columna UserID, una columna GroupID y una columna IsOwner.Cómo organizar una relación de muchos a muchos en MongoDB
Estoy usando MongoDB y estoy seguro de que hay un enfoque diferente para este tipo de relación en una base de datos de documentos. ¿Debería incrustar la lista de grupos y grupos como propietarios dentro de la tabla Usuarios como dos matrices de ObjectID? ¿Debo también almacenar la lista de miembros y propietarios en la tabla de Grupos como dos matrices, reflejando efectivamente la relación que causa una duplicación de información de relación?
¿O es una tabla de grupos de usuarios un concepto legítimo en las bases de datos de documentos para muchas relaciones?
Gracias
Ver también las respuestas a [esta pregunta] (http://stackoverflow.com/questions/2336700/mongodb-many-to-many-association) y [esta pregunta] (http://stackoverflow.com/questions/ 5498692/many-to-many-relationships-in-couchdb-or-mongodb) –
Sé que esto es bastante antiguo, pero me pregunto también por la escala.¿Qué pasa si tienes 1000 grupos? – FarscapePROJ
Gran punto-- Otra opción, en este caso, es usar el equivalente de una relación de unión de una base de datos SQL, una colección intermedia con dos claves externas, una para cada colección relacionada. En este caso, puede ejecutar 3 consultas: (1) un hallazgo normal() para obtener los resultados principales, (2) una consulta IN para obtener los resultados intermedios y finalmente (3) una consulta IN utilizando las claves externas en el resultados intermedios para encontrar registros de niños. (Así es como implementamos esta función en Waterline) – mikermcneil