Vengo de un fondo de MySQL
y estoy tratando de abarcar MongoDB
. En particular, estoy luchando por conceptualizar cómo debo modelar las relaciones n:n
de la "manera Mongo". Para este ejemplo, digamos que tenemos dos collections
: users
y interests
. Necesitamos ser capaces de representar o la consulta para varias cosas en nuestros datos:Cómo modelar las relaciones de muchos a muchos en MongoDB (para un usuario de MySQL)
- los intereses del usuario
- calificación del usuario de interés, por ejemplo "Me gusta" o "no les gusta"
- usuarios con un interés determinado
- Contador (que puede ser incrementado/disminuido) de cada clasificación de los intereses
- nombre de Interés
En MySQL
, tendría creó una tabla users_interests
indexada en ambos ID de usuario y ID de interés. Para el contador, habría tenido columnas separadas para cada tipo de calificación, y cada vez que un usuario calificaba/no calificaba un interés, realizaba una transacción para asegurarse de que los recuentos nunca fueran falsos.
He intentado reading about some schema designs, pero fue en vano.
¿Puedes ayudar a un alma perdida a encontrar el camino?
¿por qué almacenar la identificación? Es poco probable que cambie el nombre de un interés, pero conserve las referencias, ¿verdad? Además, tendrá que realizar un '$ in' para mostrar los nombres de los" me gusta ". – mnemosyn
@mnemosyn Normalmente, la ruta del código tendría uno de estos dos escenarios: 1: le interesa saber qué usuarios tienen, o 2: desea ver qué intereses tiene un usuario. Con el primero, ya tiene el nombre, y ahora solo está haciendo una consulta en un ID (consulta más rápida) en lugar de una cadena. Con el segundo, tiene una lista de identificadores que nuevamente está consultando en la identificación del objeto. Además, si cambia un nombre de interés, no tiene que refactorizarlo a través de cada entrada de usuario para actualizarlo, ya que todo lo que necesita es la identificación de ese interés particular en la colección de intereses. ¡Espero que esto ayude! – Petrogad
@mnemosyn ¿Qué sucede si decido aumentar el interés, desde "pescar" hasta "pescar" o algo así? – ceejayoz