Conexión a MongoDB con mongoengine en Python

Conexión a MongoDB con mongoengine en Python

MongoDB es una base de datos NoSQL de documentos que almacena datos en forma de JSON. MongoEngine es un ORM (Object-Document Mapper) para Python que facilita el trabajo con MongoDB.

En este tutorial, aprenderemos a conectarnos a MongoDB con mongoengine en Python.

Prerequisitos

Para seguir este tutorial, necesitarás:

  • Una instalación de Python 3
  • Una instalación de MongoDB
  • Un editor de texto

Instalación de mongoengine

La instalación de mongoengine es muy sencilla. Simplemente ejecuta el siguiente comando en tu terminal:

pip install mongoengine

Creando un modelo

El primer paso es crear un modelo para representar nuestros datos. Un modelo es una clase que define la estructura de nuestros documentos.

Para crear un modelo, importaremos el módulo Document de mongoengine:

Python
from mongoengine import Document

Luego, crearemos una clase que herede de Document:

Python
class Persona(Document):
    # Atributos del documento
    nombre = StringField()
    edad = IntField()

En este ejemplo, nuestro modelo tiene dos atributos: nombre, que es un StringField, y edad, que es un IntField.

Creando una conexión

Una vez que tengamos nuestro modelo, podemos crear una conexión a MongoDB. Para ello, usaremos el método connect() de mongoengine:

Python
# Conexión a MongoDB
from mongoengine import connect

connect('mongodb://localhost:27017/mi_base_de_datos')

Este código establece una conexión a una base de datos llamada mi_base_de_datos en el host localhost en el puerto 27017.

Insertando datos

Ahora que tenemos una conexión, podemos insertar datos en nuestra base de datos. Para ello, usaremos el método save() del modelo:

Python
# Insertando datos
persona = Persona()
persona.nombre = 'Juan Pérez'
persona.edad = 30
persona.save()

Este código inserta un nuevo documento en la colección Persona.

Recuperando datos

Para recuperar datos de nuestra base de datos, usaremos el método objects() del modelo:

Python
# Recuperando datos
personas = Persona.objects()

for persona in personas:
    print(persona.nombre, persona.edad)

Este código recupera todos los documentos de la colección Persona y los imprime en la consola.

Ejercicio

Ahora que has aprendido los conceptos básicos de la conexión a MongoDB con mongoengine en Python, puedes realizar el siguiente ejercicio:

  • Crea un modelo para representar un producto. El modelo debe tener los siguientes atributos: nombre, precio y categoría.
  • Inserta algunos productos en la base de datos.
  • Recupera los productos de la base de datos y los imprime en la consola.

Conclusión

En este tutorial, aprendimos a conectarnos a MongoDB con mongoengine en Python. Mongoengine es una herramienta muy útil para trabajar con MongoDB en Python.