Python MongoDB

MongoDB es actualmente una de las bases de datos NoSQL más populares; el tipo de datos utilizado es BSON (similar a JSON).

Puede consultar la instalación e introducción de MongoDB en nuestroTutorial de MongoDB.


PyMongo

Para que Python se conecte a MongoDB, se necesita un controlador de MongoDB. Aquí usamos el controlador PyMongo para conectarnos.

Instalación con pip

pip es una herramienta general de gestión de paquetes de Python que proporciona funciones para buscar, descargar, instalar y desinstalar paquetes de Python.

Instalar pymongo:

$ python3 -m pip3 install pymongo

También se puede especificar la versión a instalar:

$ python3 -m pip3 install pymongo==3.5.1

Comando para actualizar pymongo:

$ python3 -m pip3 install --upgrade pymongo

Instalación con easy_install

Las versiones antiguas de Python pueden usar easy_install para instalar; easy_install también es una herramienta de gestión de paquetes de Python.

$ python -m easy_install pymongo

Comando para actualizar pymongo:

$ python -m easy_install -U pymongo

Probar PyMongo

A continuación, podemos crear un archivo de prueba demo_test_mongodb.py, con el siguiente código:

Código del archivo demo_test_mongodb.py:

#!/usr/bin/python3 import pymongo

Ejecute el archivo de código anterior; si no aparece ningún error, la instalación se realizó correctamente.


Crear base de datos

Crear una base de datos

Para crear una base de datos, se necesita utilizar el objeto MongoClient y especificar la URL de conexión y el nombre de la base de datos a crear.

En el siguiente ejemplo, creamos la base de datos ejemplodb:

Ejemplo

#!/usr/bin/python3 import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["ejemplodb"]

Nota:¡En MongoDB, la base de datos solo se crea después de insertar contenido! Es decir, después de crear la base de datos, se debe crear una colección (tabla de datos) e insertar un documento (registro) para que la base de datos se cree realmente.

Determinar si la base de datos ya existe

Podemos leer todas las bases de datos en MongoDB y determinar si la base de datos especificada existe:

Ejemplo

#!/usr/bin/python3 import pymongo myclient = pymongo.MongoClient('mongodb://localhost:27017/') dblist = myclient.list_database_names() # dblist = myclient.database_names() if "ejemplodb" in dblist: print("¡La base de datos ya existe!")

Nota:database_names está obsoleto en las versiones más recientes de Python; en versiones posteriores a Python 3.7+ se cambió a list_database_names().


Crear una colección

Las colecciones en MongoDB son similares a las tablas de SQL.

Crear una colección

MongoDB utiliza el objeto de la base de datos para crear colecciones, como se muestra a continuación:

Ejemplo

#!/usr/bin/python3 import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["ejemplodb"] mycol = mydb["sites"]

Nota:¡En MongoDB, la colección solo se crea después de insertar contenido! Es decir, después de crear la colección (tabla de datos), se debe insertar un documento (registro) para que la colección se cree realmente.

Determinar si la colección ya existe

Podemos leer todas las colecciones en la base de datos MongoDB y determinar si la colección especificada existe:

Ejemplo

#!/usr/bin/python3 import pymongo myclient = pymongo.MongoClient('mongodb://localhost:27017/') mydb = myclient['ejemplodb'] collist = mydb. list_collection_names() # collist = mydb.collection_names() if "sites" in collist: # Determinar si la colección sites existe print("¡La colección ya existe!")

Nota:collection_names está obsoleto en las versiones más recientes de Python; en versiones posteriores a Python 3.7+ se cambió a list_collection_names().


Operaciones de agregar, eliminar, modificar y consultar

La siguiente tabla enumera más operaciones de MongoDB; para más detalles, haga clic en el enlace correspondiente:

N.º Función
1 Agregar datos
2 Consultar datos
3 Modificar datos
4 Ordenar datos
5 Eliminar datos
Otras extensiones