Ir al contenido principal

Tutorial de MongoDB: cómo configurar y consultar bases de datos MongoDB

Aprende a conectar y analizar bases de datos MongoDB en Python.
Actualizado 17 sept 2026  · 10 min leer

Explorar con IA

ChatGPTClaudePerplexity

Probablemente hayas oído hablar de las bases de datos relacionales o incluso hayas trabajado con ellas. El formato de filas y tablas es la estructura más popular e intuitiva para almacenar información. Aun así, no todo lo que te llega cabe bien en filas y columnas. De hecho, muchísimos problemas del mundo real requieren bases de datos no relacionales. Entonces, ¿hay alternativas?

¡La respuesta es SÍ! Existen cuatro tipos de bases de datos que no usan filas ni tablas. Se llaman bases de datos NoSQL, ya que no puedes usar SQL para consultarlas. Son:

  • Bases de datos clave-valor
  • Bases de datos de documentos
  • Bases de datos de familias de columnas
  • Bases de datos de grafos

Este artículo se centra en las bases de datos de documentos y en cómo usar un servidor llamado MongoDB. Pero antes de entrar en detalles técnicos, veamos los casos de uso de las bases de datos de documentos. Puedes consultar nuestra guía sobre bases de datos de grafos para más información.

¿Cuándo usar bases de datos de documentos?

Uno de los principales motivos para elegir bases de datos de documentos es cuando tienes datos que no encajan bien en un esquema predefinido como una tabla. Muchos procesos o aplicaciones en distintas industrias almacenan este tipo de datos. Algunos ejemplos:

  • Apps web y móviles: perfiles de usuario, preferencias, contenido e interacciones
  • Sistemas de gestión de contenidos: almacenamiento de una amplia variedad de medios como texto, imágenes, vídeo, GIF, etc.
  • Plataformas de e-commerce: catálogos de productos, información de clientes, historial de pedidos, inventario, etc.
  • Videojuegos: almacenamiento de perfiles de jugador, clasificaciones
  • Registro y recopilación de datos: grandes volúmenes de logs, eventos, métricas para análisis, etc.

Piensa un momento en cómo encajarían en tablas los datos recogidos en estas industrias. Por ejemplo, a una plataforma de e-commerce le costaría almacenar sus catálogos de producto en un esquema predefinido. Cada producto tiene atributos distintos o, peor aún, cantidades de atributos diferentes. ¿Necesitas 10 columnas para guardar 10 atributos físicos de drones de 100 marcas distintas o solo 5–6 para la información de libros?

En estos escenarios, las bases de datos basadas en tablas no te sacarán del apuro. Con bases de datos de documentos como MongoDB, obtienes estas ventajas:

  • Sin coste de desarrollo inicial para diseñar un esquema
  • Los documentos (datos) pueden variar con el tiempo (tipos de datos, número de atributos, etc.)
  • Las bases de datos de documentos evitan los joins, lo que acelera mucho las consultas
  • Intuitivas para desarrolladores, ya que suelen ser grandes ficheros JSON, básicamente diccionarios enormes para quienes programan en Python
  • Escalan horizontalmente, es decir, no necesitan cada vez más recursos de cómputo a medida que la base de datos crece

Ahora, veamos los conceptos clave de las bases de datos de documentos y de MongoDB.

Certifícate en el puesto de Analista de Datos de tus sueños

Nuestros programas de certificación te ayudan a destacar y a demostrar que tus aptitudes están preparadas para el trabajo a posibles empleadores.

Consigue Tu Certificación
Timeline mobile.png

Conceptos clave sobre MongoDB

He repetido "bases de datos de documentos" varias veces, pero ¿qué son exactamente? Estos son los conceptos principales:

  • Documentos: los datos se almacenan en objetos llamados documentos. En pocas palabras, los documentos se parecen a objetos JSON de pares clave-valor. Un documento equivale a una fila en una tabla. Si programas en Python, piensa en un documento como un diccionario y listo. Solo recuerda que los documentos pueden contener documentos anidados, una de las características clave de estas bases de datos.
  • Colecciones: las colecciones son como las tablas en las bases de datos relacionales, pero en lugar de filas contienen, lo has adivinado, documentos. Son estructuras de datos masivas que pueden albergar miles o millones de diccionarios.
  • Sin esquema: aquí viene lo interesante. Una colección puede tener documentos de tamaños distintos. Por ejemplo, el documento 1 puede tener 10 pares clave-valor mientras que el documento 2 puede tener 15 (siempre que la información trate de la misma categoría/tema, como productos, para que la colección tenga sentido).

Aquí tienes una gran tabla que resume las diferencias entre bases de datos relacionales y de documentos:

Característica Bases de datos de documentos (p. ej., MongoDB) Bases de datos relacionales (p. ej., MySQL, PostgreSQL)
Estructura de datos Almacenan datos como documentos (p. ej., JSON, BSON), con estructuras flexibles y jerárquicas. Almacenan datos en tablas con filas y columnas siguiendo un esquema predefinido.
Flexibilidad del esquema Sin esquema: los documentos pueden tener estructuras diferentes, con campos y tipos de datos variados. Esquema fijo: requiere un esquema predefinido con columnas y tipos de datos específicos.
Lenguaje de consulta Usa MongoDB Query Language (MQL) u otros similares, basado en objetos y más flexible. Usa SQL (Structured Query Language) para consultar datos estructurados.
Joins Evita joins incrustando datos relacionados dentro de los documentos (desnormalización). Admite joins complejos entre tablas (normalización).
Rendimiento Lecturas y escrituras más rápidas para datos no estructurados o semiestructurados. Evita la sobrecarga de los joins. Gran rendimiento para datos estructurados, pero los joins pueden ralentizar las consultas.
Escalabilidad Escala horizontalmente: puede distribuir datos entre varios servidores mediante sharding. Normalmente escala verticalmente: depende de hardware más potente, aunque algunas admiten escalado horizontal (p. ej., con particiones).
Soporte de transacciones Admite transacciones ACID multidocumento (desde MongoDB 4.0), aunque inicialmente se diseñó para operaciones no transaccionales. Soporte completo de transacciones ACID, con consistencia y fiabilidad sólidas.
Casos de uso Mejores para datos no estructurados o semiestructurados como perfiles de usuario, logs, catálogos y estructuras flexibles. Ideales para datos estructurados con relaciones claras, como registros financieros o ERP.
Relaciones de datos Admiten datos incrustados (desnormalización), lo que facilita recuperar información relacionada con una sola consulta. Se basan en claves externas para establecer relaciones entre tablas (normalización).
Indexación Admiten indexación, pero con menos variedad y sofisticación que en las bases de datos relacionales. Capacidades de indexación potentes, con múltiples tipos de índice (p. ej., B-tree, hash) para optimizar el rendimiento.
Consistencia Ofrecen consistencia eventual en entornos distribuidos, pero también consistencia fuerte cuando es necesario (mediante transacciones ACID). Garantizan consistencia fuerte en la mayoría de los casos gracias a transacciones ACID e integridad relacional.
Escalado de volumen Escalan fácilmente para grandes volúmenes de datos añadiendo servidores (sharding). Pueden escalar verticalmente; el escalado horizontal requiere configuraciones más complejas (p. ej., particionado).
Integridad de datos La integridad se gestiona dentro de cada documento; gestionar relaciones entre documentos puede ser más complejo. Soporte sólido de integridad mediante claves primarias/externas y restricciones como UNIQUE y NOT NULL.
Facilidad para desarrolladores Amigables para desarrolladores: modelado flexible y buena integración con apps modernas (p. ej., JSON, REST APIs). Modelado rígido, pero bien entendido por quienes dominan SQL y datos estructurados.

¡Vamos a trabajar con documentos en MongoDB!

Configuración de MongoDB: conexión a orígenes de datos

Para consultar bases de datos de documentos, necesitamos instalar el servidor de MongoDB. Aquí tienes las instrucciones por plataforma:

  • En Windows, sigue las instrucciones de este enlace.
  • En sistemas tipo Unix, puedes instalar MongoDB desde la terminal:
$ sudo apt-get install -y mongodb

Después, dentro de un entorno virtual, instala las librerías pymongo y requests. pymongo es el adaptador oficial de Python para el servidor de MongoDB. Necesitaremos la librería requests para extraer datos de una API.

$ pip install pymongo
$ pip install requests

Luego, desde la terminal, inicia el servidor de MongoDB con este comando:

$ sudo service mongodb start

Ahora ya podemos cargar datos en una base de datos de documentos. Hay dos escenarios:

  1. Tienes datos localmente en formatos adecuados como JSON, BSON, YAML o XML.
  2. Necesitas extraer los datos de fuentes externas, normalmente APIs.

Veremos ambos. Primero, carguemos localmente una colección llamada drone_races.json. Aquí tienes el fragmento:

import json

from pymongo import MongoClient

# Establish connection to MongoDB
client = MongoClient("localhost", 27017)
# Create a database named "drones"
drones = client["drones"]
# Create a collection named "races"
races = drones["races"]

# Load dataset into MongoDB
with open("data/drone_races.json", "r") as file:
   data = json.load(file)
   races.insert_many(data)

Los dos objetos más importantes para nosotros son drones (una base de datos) y races (una colección). La mayoría de funciones y métodos se relacionan con las colecciones. Los objetos de base de datos se usan sobre todo para gestionar colecciones.

Ahora, veamos cómo cargar los mismos datos usando una API. He publicado la información como API con un servicio llamado Mockaroo. Aquí va el fragmento:

import requests
from pymongo import MongoClient

# Fetch data from the API
api_url = (
   "https://my.api.mockaroo.com/drone_race_matches.json?key=6f5a6b50"
)
response = requests.get(api_url)

if response.status_code == 200:
   data = response.json()  # Get the JSON data from the API

   # Establish a connection to MongoDB
   client = MongoClient()

   # Access or create a specific database
   drones = client["drones"]

   # Access or create a specific collection within the database
   races = drones["races"]

   # Insert the fetched data into the MongoDB collection
   races.insert_many(data)
else:
   print("Failed to fetch data from the API.")

Hemos cargado datos en la colección races de la base de datos de documentos drones, ¿o no? ¡Comprobémoslo con consultas!

Consultas elementales en MongoDB

Contar documentos en MongoDB

Necesitamos contar los documentos para saber si hay datos en una colección. Usaremos el método count_documents para hacerlo:

>>> races.count_documents({})
9040

Fíjate en el diccionario vacío que pasamos a count_documents. Ese diccionario se llama filtro en MongoDB. A lo largo del tutorial aprenderemos a completarlo para crear distintos filtros. Por ahora no tenemos filtro. El código anterior equivale a SELECT COUNT(*) FROM table_name en SQL.

¡Tenemos 9040 documentos, bien! Ahora, echemos un vistazo a algunos datos.

Extraer un documento en MongoDB

Para ver un documento con pymongo, podemos usar find_one:

from pprint import pprint

>>> pprint(races.find_one())
{'_id': ObjectId('659d31e9255ec0cf4bab529d'),
'laps': 3,
'league': 'F1 Drones',
'location': {'city': 'Ford',
             'country': 'United Kingdom',
             'date': 'error: invalid date "2024-10-25"',
             'venue': 'Manhattan Seas'},
'name': 'Honorable',
'pilots': {'drone': 'DJI3-old',
           'finishing_position': 66,
           'name': 'Kariotta Cow',
           'qualification_time': 27.39,
           'team': 'Sky Crusaders',
           'telemetry': {'altitude': 34.3,
                         'battery_voltage': 12.1,
                         'speed': 68.3,
                         'timestamp': 'error: invalid date '
                                      '"2024-10-25T14:09:26Z"'}},
'sponsors': ['Fat Shark', 'DJI', 'Etisalat'],
'weather_conditions': 'snowy'}

Fíjate en los campos (claves) de este documento. Guarda información sobre una única carrera de drones e incluye, por ejemplo:

  • El número de vueltas
  • Las condiciones meteorológicas durante la carrera
  • Los pilotos (no todos) que participaron
  • Los patrocinadores, etc.

El documento también tiene un campo obligatorio _id, que es un hash único.

Seleccionar todos los documentos en MongoDB

count_documents siempre devuelve un número, pero a veces queremos ver los datos que devuelve la consulta. Para ello, podemos usar el hermano mayor de find_one, que es find:

from pprint import pprint

for race in races.find():
   pprint(race)
   break

{'_id': ObjectId('659d31e9255ec0cf4bab529d'),
'laps': 3,
'league': 'F1 Drones',
'location': {'city': 'Ford',
             'country': 'United Kingdom',
             'date': 'error: invalid date "2024-10-25"',
             'venue': 'Manhattan Seas'},
'name': 'Honorable',
'pilots': {'drone': 'DJI3-old',
           'finishing_position': 66,
           'name': 'Kariotta Cow',
           'qualification_time': 27.39,
           'team': 'Sky Crusaders',
           'telemetry': {'altitude': 34.3,
                         'battery_voltage': 12.1,
                         'speed': 68.3,
                         'timestamp': 'error: invalid date '
                                      '"2024-10-25T14:09:26Z"'}},
'sponsors': ['Fat Shark', 'DJI', 'Etisalat'],
'weather_conditions': 'snowy'}

find con una consulta vacía (sin argumentos) devuelve documentos uno a uno, pero ¡no es lo que queremos! Queremos realizar consultas para responder preguntas interesantes sobre nuestros datos. Aquí es donde resultarán útiles los documentos de filtro.

Seleccionar según una condición en MongoDB

Empecemos con los filtros más simples: documentos que cumplan que un campo es igual a un valor. Sería lo mismo que:

SELECT *
 FROM table_name
WHERE field = value

Hagámoslo en MongoDB:

criteria = {"sponsors": "Fat Shark"}

fat_shark_races = races.count_documents(criteria)
fat_shark_races

6194

Arriba estamos eligiendo las carreras con "Fat Shark" como patrocinador. La sintaxis es simplemente un diccionario que mapea el campo sponsors al valor "Fat Shark".

El lenguaje de consultas de MongoDB no sería un lenguaje si no tuviera operadores de desigualdad comunes. Así se usa el operador "menor que":

criteria = {"pilots.qualification_time": {"$lt": 10}}

quick_races = races.count_documents(criteria)
quick_races

3061

Esta consulta introduce cuatro rasgos nuevos de MQL:

  • Puedes acceder a subcampos con notación de punto. pilots.qualification_time extrae el tiempo de clasificación anidado dentro de pilots.
  • Casi todos los operadores en MQL comienzan con un signo de dólar.
  • Los operadores se usan en un documento anidado como arriba.
  • $lt es el operador "menor que".

El resultado indica que hubo 3061 carreras en las que un piloto tuvo menos de 10 segundos de tiempo de clasificación. Esta consulta fue posible con $lt. Sus hermanos son:

  • $lte: menor o igual que
  • $gt: mayor que
  • $gte: mayor o igual que

Todos comparten la misma sintaxis que $lt.

Seleccionar con operadores lógicos en MongoDB

MQL también incluye operadores lógicos como $and y $or. Empecemos por este último.

Recuperaremos carreras con Reino Unido como país o Etisalat como patrocinador:

criteria = {
   "$or": [
       {"location.country": "United Kingdom"},
       {"sponsors": "Etisalat"},
   ]
}

>>> races.count_documents(criteria)

6223

De nuevo, usa el botón Explain code para una explicación detallada.

Hay 6223 documentos que cumplen el criterio. Para usar una lógica OR con múltiples valores de un mismo campo, podemos usar el operador $in.

Por ejemplo, podemos comprobar condiciones meteorológicas adversas así:

criteria = {
   "weather_conditions": {"$in": ["rainy", "snowy", "cloudy"]}
}

>>> races.count_documents(criteria)

5508

Con $or esta consulta habría sido un engorro. Ahora, pasemos a $and.

Esta vez queremos encontrar carreras con Australia como país Y Fat Shark como patrocinador. Así se hace con $and:

criteria = {
   "$and": [
       {"location.country": "Australia"},
       {"sponsors": "Fat Shark"},
   ]
}
>>> races.count_documents(criteria)
193

Pero en la práctica, rara vez usarás $and, ya que se puede expresar de forma más simple:

criteria = {
   "location.country": "Australia",
   "sponsors": "Fat Shark",
}

races.count_documents(criteria)
193

Basta con añadir más pares clave-valor al documento de filtro para lograr la lógica AND.

Por último, está el operador $nin, que comprueba no pertenencia. Por ejemplo, podemos devolver todas las carreras que no se celebraron en Estados Unidos, Reino Unido o Australia:

criteria = {
   "location.country": {
       "$nin": ["United States", "United Kingdom", "Australia"]
   }
}

>>> races.count_documents(criteria)
126

Esto deja solo a Emiratos Árabes Unidos como país, así que la consulta anterior podría escribirse como:

criteria = {"location.country": "United Arab Emirates"}

>>> races.count_documents(criteria)
126

Pero ya te haces una idea.

Consultar valores nulos o ausentes en MongoDB

Comprobar valores nulos o ausentes es una operación universal en cualquier análisis de datos. Para ello, MongoDB tiene el operador $exists. Dos ejemplos para verificar si existe un campo:

criteria = {"location.district": {"$exists": True}}

>>> races.count_documents(criteria)

0

Vaya, parece que el campo district no existe en ningún documento. Sin embargo, el campo laps sí debería existir en todos, ya que es clave para describir una carrera.

criteria = {"laps": {"$exists": True}}

races.count_documents(criteria)
9040

Como era de esperar, todos los documentos tienen el campo laps. ¿Y si un campo existe pero su valor es nulo? También podemos comprobarlo:

criteria = {"pilots.finishing_position": None}

races.count_documents(criteria)
0

Usando el objeto incorporado None de Python, podemos comprobar la ausencia de valor en cualquier campo.

Hay escenarios más avanzados que también requieren comprobar nulos o existencia. Por ejemplo, quizá quieras verificar si existen ciertos elementos de arrays anidados muy grandes.

Para ello, podemos usar la sintaxis de indexación de arrays en MQL. Por ejemplo, para encontrar carreras con un solo patrocinador, tenemos que comprobar si existe el segundo elemento del array sponsors:

# La cuenta empieza en 0, como siempre
criteria = {"sponsors.1": {"$exists": False}}

races.count_documents(criteria)
2929

Es tan sencillo como añadir el índice del elemento a la clave. En nuestra colección, casi 3000 carreras tuvieron un único patrocinador.

Esta sintaxis de indexación funciona con muchos otros operadores, no solo con $exists.

Proyecciones (restringir campos)

Lo último que veremos son las proyecciones. Hasta ahora, los resultados de nuestras consultas incluían todos los campos de cada documento. No es ideal cuando tus documentos tienen cientos de campos. ¡Imagínate imprimir esas salidas!

Para elegir qué campos devolver, podemos usar proyecciones. Así:

criteria = {"pilots.telemetry.speed": {"$gte": 20}}
projection = {
   "sponsors": 1,
   "location.country": 1,
   "pilots.telemetry.speed": 1,
   "pilots.name": 1,
}

fast_pilots = races.find(criteria, projection)

for pilot in fast_pilots:
   pprint(pilot)
   break

En este caso, escribimos el filtro como siempre pero definimos otro documento con cuatro campos a 1. Si pasamos este diccionario projection como segundo argumento a find o count_documents, solo obtendremos esos campos en la salida.

{'_id': ObjectId('659d31e9255ec0cf4bab529d'),
'location': {'country': 'United Kingdom'},
'pilots': {'name': 'Kariotta Cow', 'telemetry': {'speed': 68.3}},
'sponsors': ['Fat Shark', 'DJI', 'Etisalat']}

Aunque elegimos cuatro campos, el puñetero _id se ha colado. Para evitarlo, ponlo a 0 en el diccionario projection:

criteria = {"pilots.telemetry.speed": {"$gte": 20}}
projection = {
   "sponsors": 1,
   "location.country": 1,
   "pilots.telemetry.speed": 1,
   "pilots.name": 1,
   "_id": 0,
}

fast_pilots = races.find(criteria, projection)

for pilot in fast_pilots:
   pprint(pilot)
   break

{'location': {'country': 'United Kingdom'},
'pilots': {'name': 'Kariotta Cow', 'telemetry': {'speed': 68.3}},
'sponsors': ['Fat Shark', 'DJI', 'Etisalat']}

Ahora sí, mucho mejor.

Por último, para devolver todo salvo unos pocos campos, podemos poner esos campos a 0:

projection = {"_id": 0, "league": 0, "pilots": 0}

# Criterios vacíos en este caso
races.find_one({}, projection)

{'name': 'Honorable',
'location': {'venue': 'Manhattan Seas',
 'city': 'Ford',
 'country': 'United Kingdom',
 'date': 'error: invalid date "2024-10-25"'},
'sponsors': ['Fat Shark', 'DJI', 'Etisalat'],
'laps': 3,
'weather_conditions': 'snowy'}

Como ves, esta vez tenemos todos los campos excepto _id, league y pilots.

Conclusión

Este tutorial no hace justicia a la envergadura de MongoDB como gestor de bases de datos. Hoy solo hemos visto consultas GET (para recuperar información), pero MongoDB también permite insertar, actualizar o eliminar información en bases de datos de documentos. Además, hemos dejado fuera toda una clase de consultas: las agregaciones.

Todos estos temas quedan fuera del alcance del artículo y requieren recursos adicionales. ¿Por qué no echas un vistazo a esto?

Certifícate en SQL

Demuestra que tus conocimientos de SQL están preparados para el trabajo con una certificación.

FAQs

¿En qué se diferencian bases de datos de documentos como MongoDB de las relacionales?

Las bases de datos de documentos, como MongoDB, almacenan datos en documentos (a menudo con formatos similares a JSON) que pueden contener estructuras anidadas. Esto difiere de las bases de datos relacionales, que almacenan datos en filas y tablas con un esquema fijo. Las bases de datos de documentos ofrecen más flexibilidad porque el esquema es dinámico: cada documento puede tener campos y tipos de datos distintos. Por eso MongoDB es adecuado para datos no estructurados o semiestructurados, a diferencia de las relacionales, que requieren un esquema predefinido.

¿Por qué debería usar MongoDB en lugar de una base de datos relacional?

MongoDB es útil cuando trabajas con datos que no encajan bien en una estructura tabular. Úsalo si tus datos tienen un esquema flexible, si prevés cambios frecuentes en la estructura o si necesitas manejar grandes volúmenes de datos no estructurados. También es una buena opción para aplicaciones que requieren operaciones de lectura y escritura a gran velocidad y a escala, como e-commerce, logging o sistemas de gestión de contenidos.

¿Qué lenguajes de programación son compatibles con MongoDB?

MongoDB es compatible con una amplia gama de lenguajes de programación, incluidos Python, Java, JavaScript, Node.js, Go, Ruby y C#, a través de drivers y librerías oficiales. La librería de Python pymongo es la más habitual para interactuar con MongoDB en aplicaciones de ciencia de datos. MongoDB también se integra bien con frameworks modernos como Django, Flask y Express.js.

¿Cómo gestiona MongoDB datos a gran escala y el escalado horizontal?

MongoDB está diseñado para el escalado horizontal mediante sharding, donde los datos se distribuyen entre varios servidores para gestionar grandes volúmenes de forma eficiente. A medida que tus datos crecen, MongoDB reparte la carga entre varias máquinas, mejorando rendimiento y capacidad. Esto lo hace ideal para aplicaciones de big data o con rápido crecimiento de volumen.

¿Puede MongoDB manejar consultas complejas como las bases de datos SQL?

Sí, MongoDB puede manejar consultas complejas, pero su lenguaje de consulta (MQL, MongoDB Query Language) es diferente de SQL. MongoDB admite filtros, proyecciones, operadores lógicos y agregaciones para realizar consultas sofisticadas y así recuperar, filtrar y transformar datos. Sin embargo, a diferencia de las bases SQL, MongoDB no admite joins de la misma manera, ya que está diseñado para desnormalizar datos en estructuras flexibles de documentos.

¿Es MongoDB adecuado para analítica en tiempo real?

MongoDB puede usarse para analítica en tiempo real, pero su rendimiento depende en gran medida de cómo estructures e indexes los datos. Con la indexación potente y el framework de agregaciones de MongoDB, puedes ejecutar consultas en tiempo real y obtener insights con eficiencia. No obstante, para tareas analíticas más complejas, quizá te interese integrarlo con herramientas como Apache Spark o usar su framework de agregación para procesamiento a gran escala en tiempo real.

¿Qué funciones de seguridad ofrece MongoDB?

MongoDB ofrece varias funciones de seguridad, como autenticación, autorización (control de acceso basado en roles), cifrado (en tránsito y en reposo) y auditoría. La Enterprise Edition de MongoDB incorpora funciones adicionales como integración con LDAP y autenticación Kerberos para seguridad a nivel empresarial. Estas capacidades ayudan a proteger datos sensibles y a mantener el cumplimiento normativo.

¿Puede MongoDB manejar transacciones ACID?

Sí, MongoDB admite transacciones ACID, especialmente desde la versión 4.0. Esto permite transacciones multidocumento, similares a las de bases relacionales, garantizando atomicidad, consistencia, aislamiento y durabilidad en operaciones que afectan a varios documentos o colecciones. Así, MongoDB es más adecuado para escenarios que requieren garantías transaccionales.

¿Cuál es la diferencia entre JSON y BSON en MongoDB?

Aunque JSON es un formato legible por humanos muy usado para representar datos, BSON (Binary JSON) es el formato de almacenamiento de MongoDB. BSON permite un almacenamiento y recuperación más eficientes y admite tipos adicionales como fechas y datos binarios, que JSON no maneja de forma nativa. Además, añade metadatos que mejoran el rendimiento al almacenar y recuperar documentos.


Bexruz (Bex) Tuychiev's photo
Author
Bexruz (Bex) Tuychiev
LinkedIn

Soy creador de contenidos sobre ciencia de datos con más de 2 años de experiencia y uno de los mayores seguimientos en Medium. Me gusta escribir artículos detallados sobre IA y ML con un toque sarcástico, porque hay que darle algo de vidilla al tema. He publicado más de 130 artículos y un curso en DataCamp, y tengo otro en marcha. Mis contenidos han sido vistos por más de 5 millones de personas; 20.000 de ellas se convirtieron en seguidores tanto en Medium como en LinkedIn. 

Temas
Python
Ingeniería de datos

¡Empieza hoy tu camino en bases de datos no relacionales en DataCamp!

Curso

Introducción a MongoDB en Python

3 h
24.3K
Aprende a manipular y analizar datos estructurados de forma flexible con MongoDB.
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado

Tutorial

Tutorial sobre cómo ejecutar consultas SQL en Python y R

Aprenda formas fáciles y eficaces de ejecutar consultas SQL en Python y R para el análisis de datos y la gestión de bases de datos.
Abid Ali Awan's photo

Abid Ali Awan

13 min

SQLAlchemy_Tutorial.

Tutorial

Tutorial de SQLAlchemy con ejemplos

Aprende a acceder y ejecutar consultas SQL en todo tipo de bases de datos relacionales utilizando objetos Python.
Abid Ali Awan's photo

Abid Ali Awan

13 min

Tutorial

Guía de modelado de datos de MongoDB para aplicaciones de blogs

Aprende algunas posibilidades de modelado de datos que incluyen documentos anidados al diseñar un sistema de gestión de contenidos (CMS) o una aplicación de blog.
Nic Raboy's photo

Nic Raboy

Tutorial

Gestionar bases de datos PostgreSQL en Python con psycopg2

Descubre cómo crear, conectar y gestionar bases de datos PostgreSQL utilizando el paquete psycopg2 de Python.
Javier Canales Luna's photo

Javier Canales Luna

14 min

Tutorial

Tutorial de Estructuras de Datos en Python

Introdúcete en las estructuras de datos de Python: aprende más sobre tipos de datos y estructuras de datos primitivas y no primitivas, como cadenas, listas, pilas, etc.
Sejal Jaiswal's photo

Sejal Jaiswal

24 min

Tutorial

Tutorial de pandas en Python: La guía definitiva para principiantes

¿Estás preparado para comenzar tu viaje de pandas? Aquí tienes una guía paso a paso sobre cómo empezar.
Vidhi Chugh's photo

Vidhi Chugh

15 min

Ver MásVer Más