English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Modelado de datos MongoDB

Los datos en MongoDB tienen un esquema flexible schema.documents en el mismo conjunto. Los documentos en el mismo conjunto. No necesitan tener el mismo conjunto de campos o campos comunes en la estructura del conjunto, los documentos pueden contener diferentes tipos de datos.

Diseño del modelo de datos

MongoDB ofrece dos tipos de modelos de datos: modelo de datos embebido y modelo de datos normalizado. Según las necesidades, puede usar cualquiera de estos dos modelos al preparar los documentos.

Modelo de datos embebido

En este modelo, puede insertar todos los datos relacionados (embebidos) en un solo documento, lo que también se conoce como modelo de datos no normalizado.

Por ejemplo, supongamos que obtenemos los detalles del empleado en tres documentos diferentes (Detalles_Personales, Contacto y Dirección). Luego, se pueden insertar todos los tres documentos en un solo documento, como se muestra a continuación:

{
	_id:,
	ID_Empleado: "10025AE336"
	Detalles_Personales:{
		Nombre: "Radhika",
		Apellido: "Sharma",
		Fecha_de_Nacimiento: "1995-09-26"
	}
	Contacto: {
		e-correo: "[email protected]"
		teléfono: "9848022338"
	}
	Dirección: {
		ciudad: "Hyderabad",
		Área: "Madapur",
		Estado: "Telangana"
	}
}

Modelo de datos normalizado

En este modelo, puede usar referencias para referirse a subdocumentos en el documento original. Por ejemplo, puede reescribir el siguiente documento como modelo normalizado:

Empleado:

{
	_id: ObjectId101>,,
	ID_Empleado: "10025AE336"
}

Detalles_Personales:

{
	_id: ObjectId102>,,
	empDocID: "ObjectId"101"
	Nombre: "Radhika",
	Apellido: "Sharma",
	Fecha_de_Nacimiento: "1995-09-26"
}

Contacto:

{
	_id: ObjectId103>,,
	empDocID: "ObjectId"101"
	e-correo: "[email protected]"
	teléfono: "9848022338"
}

Dirección:

{
	_id: ObjectId104>,,
	empDocID: "ObjectId"101"
	ciudad: "Hyderabad",
	Área: "Madapur",
	Estado: "Telangana"
}

Consideraciones al diseñar la arquitectura en MongoDB

  • Diseñe la arquitectura según las necesidades del usuario.

  • Si se utilizan juntos, combínelos en un solo documento. De lo contrario, manténgalos separados (pero asegúrese de que no se necesite una conexión).

  • Copie los datos (pero con limitaciones), ya que el espacio en disco es más barato que el tiempo de cálculo.

  • Realice la conexión en la escritura, en lugar de en la lectura.

  • Optimice su solución para los casos de uso más comunes.

  • Realizar agrupaciones complejas en la arquitectura.

Ejemplo en línea

Supongamos que el cliente necesita un blog para/El sitio realiza el diseño de la base de datos y ve las diferencias entre el diseño de la modalidad RDBMS y MongoDB. El sitio tiene los siguientes requisitos.

  • Cada entrada tiene un título único, descripción y URL.

  • Cada entrada puede tener una o más etiquetas.

  • Cada entrada tiene el nombre del autor y el número total de me gustas.

  • Cada entrada tiene comentarios proporcionados por el usuario, así como sus nombres, mensajes, tiempo de datos y me gustas.

  • En cada publicación, puede haber cero o más comentarios.

En la arquitectura de RDBMS, el diseño requerido anterior tendrá al menos tres tablas.

En el esquema de MongoDB, el diseño tendrá una colección de publicaciones y la siguiente estructura-

{
   _id: POST_ID
   title: TITLE_OF_POST, 
   description: POST_DESCRIPTION,
   by: POST_BY,
   url: URL_OF_POST,
   tags: [TAG1, TAG2, TAG3]
   likes: TOTAL_LIKES, 
   comments: [	
      {
         user:'COMMENT_BY',
         message: TEXT,
         dateCreated: DATE_TIME,
         like: LIKES 
      }
      {
         user:'COMMENT_BY',
         message: TEXT,
         dateCreated: DATE_TIME,
         like: LIKES
      }
   ]
}

Por lo tanto, al mostrar datos, en RDBMS, necesita conectar tres tablas, mientras que en MongoDB, los datos se mostrarán solo de una colección.