sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cuál es la mejor estructura de datos para almacenar estos datos en mongoDB?

Su estructura parece correcta. Está almacenando solo news_id en el campo de datos y esa es una implementación más inteligente porque almacenar el documento completo hará que MongoDB se mueva y escriba mucho cada vez que el usuario agregue una nueva noticia a los favoritos.

La razón, que probablemente ya sepa, es que se crea un nuevo documento en cada actualización. Referencia:http://docs.mongodb.org/ manual/referencia/método/db.coleccion.guardar/#upsert .

También creo que, como regla comercial, debe restringir la cantidad de noticias que el usuario puede establecer como favoritas. Permitir que esta lista crezca indefinidamente no será una buena idea para el diseño integrado.

En caso de que desee una cantidad ilimitada de favoritos, es mejor que cree una colección separada para eso y luego, para obtener todos los favoritos por parte de un usuario, use los operadores $match (en la identificación del usuario) y $sort (de elementos de noticias) en una consulta de agregación para obtener la lista ordenada de las noticias favoritas del usuario.