Cómo acceder a un servidor MongoDB mediante Python y cómo insertar, listar, eliminar y actualizar documentos.

Requisitos para acceder a MongoDB con Python

Necesitaremos disponer de un servidor con MongoDB. En el siguiente tutorial explicamos cómo desplegar un servidor MongoDB con Docker en segundos:

Para el acceso a MongoDB desde Python, usaremos la librería pymongo, por lo que debemos instarla, con el comando:

Script Python con acceso a MongoDB para seleccionar, insertar, actualizar y eliminar documentos

Mostramos a continuación el script Python completo que realiza las siguientes tareas (las líneas más importantes están comentadas con su correspondiente explicación):

  • Crea tres tareas (objetos de la clase Tareas) con datos para almacenar en MongoDB.
  • Solicita los datos de conexión al servidor MongoDB (servidor, puerto, base de datos, colección, usuario y contraseña).
  • Inserta los documentos «Tareas» en la colección especificada de MongoDB.
  • Realizan un «select» para mostrar los documentos que cumplan un determinado filtro.
  • Actualiza los documentos (tareas) que cumplan un determinado filtro.
  • Elimina los documentos que cumplan un determinado filtro.
  • Cierra la conexión con el servidor de base de datos MongoDB.

El programa Python tendrá dos ficheros. El primer fichero, con nombre Tarea.py, tendrá el siguiente contenido:

Este fichero contendrá la clase «Tarea» con los campos que se guardarán en la BD MongoBD y el método coleccionTareaMongoDB para convertir el objeto Tarea en un diccionario, para que sea entendible por MongoDB.

Por otro lado, tendremos el fichero principal de la aplicación Python, que tendrá el siguiente contenido y que guardaremos con el nombre mongodb.py:

Resultado de la ejecución del programa Python con acceso a MongoDB

A continuación mostramos el resultado de la ejecución del programa Python que accederá al servidor MongoDB y realizará las acciones indicadas anteriormente:

Por supuesto, si disponemos del cliente MongoDB Compass, también podremos ver los documentos insertados en la base de datos bdproyectoa y en la colección bdproyectoa: