El primer paso para utilizar MongoDB es comprender los conceptos básicos de MongoDB y el modelo de datos (estructura de datos), saber cómo se almacenan los datos. De hecho, MongoDB es muy similar a MySQL, por lo que todos los que conocen MySQL no tendrán dificultades para aprender MongoDB.

Conceptos básicos de MongoDB

Base de datos

La base de datos de MongoDB es igual que la base de datos de MySQL.

Colección

Una colección de MongoDB se refiere a una colección de datos de documentos, similar al concepto de una tabla en MySQL.

Documento

Un documento de MongoDB, similar a una fila de datos en una tabla de MySQL, es una estructura de datos JSON que consta de varios campos, lo que hace que la estructura del documento en MongoDB sea muy flexible.

Campo

Un campo de documento de MongoDB es similar al concepto de un campo en una tabla MySQL, representando los datos específicos a almacenar, con cada campo teniendo su propio tipo de datos.

Índice

El índice de MongoDB es similar al índice de MySQL, con el propósito de mejorar la eficiencia de la consulta.

Agregación

El concepto de agregación de MongoDB es similar a la agregación de análisis Group by/Count/Sum en MySQL, utilizado para el análisis estadístico de datos.

Comparación de conceptos entre MongoDB y MySQL

MYSQL MongoDB
Base de datos Base de datos
Tabla Colección
Fila Documento
Columna Campo de documento
Índice Índice
Agregación (por ejemplo, group by) Agregación

Básicamente, los conceptos de MongoDB se pueden relacionar con MySQL, por lo que MongoDB es la base de datos no relacional más similar a las bases de datos relacionales (NoSQL).

Datos de Documentos de MongoDB

Un documento es simplemente una estructura JSON compuesta de múltiples campos, cada uno con su propio tipo de datos. Al desarrollar con MongoDB, el enfoque se centra principalmente en cómo diseñar la estructura del documento, similar a cómo el núcleo de usar MySQL implica el diseño de estructuras de tablas.

Ejemplo de datos del documento de MongoDB:

{
  "_id": "5cf0029caff5056591b0ce7d",
  "firstname": "Jane",
  "lastname": "Wu",
  "address": {
    "street": "1 Circle Rd",
    "city": "Los Angeles",
    "state": "CA",
    "zip": "90404"
  },
  "hobbies": ["surfing", "coding"]
}

Puede ser cualquier estructura JSON arbitrariamente anidada, algo que las estructuras de tablas de MySQL no pueden lograr. El campo _id sirve como la clave primaria del documento, y si no especificas un valor específico, MongoDB generará un valor único al azar.

La mayor diferencia entre la estructura de datos de MongoDB y las tablas de MySQL es que MongoDB no requiere definir previamente la estructura del documento. Con MongoDB, puedes insertar directamente datos JSON en una colección sin necesidad de un esquema predefinido. Cada vez que escribes datos JSON en una colección de MongoDB, el formato puede ser diferente, permitiendo que se añadan o eliminen campos a voluntad.

Nota: Aunque la estructura de documentos de MongoDB es bastante flexible y puede acomodar diferentes formatos de datos para cada entrada, en aplicaciones prácticas, la estructura de datos dentro de una colección suele ser uniforme. De lo contrario, si el formato de cada entrada es diferente dentro de la colección, mantenerla será una pesadilla, ya que no conocerás el formato de los datos recuperados cada vez.