Búsqueda de sitios web

Eliminar colección si ya existe en MongoDB usando Python


MongoDB es una base de datos de código abierto muy popular que almacena datos en un formato flexible similar a JSON. No utiliza la técnica ortodoxa de almacenar datos en filas y columnas. En cambio, utiliza un enfoque más flexible que aumenta su escalabilidad.

Esta base de datos está diseñada para manejar grandes volúmenes de datos y, por lo tanto, está hecha a medida para aplicaciones modernas. Una base de datos MongoDB consta de “colecciones”, que es similar a una tabla en un RDBMS.

Una colección es un grupo de documentos que consta de campos con diferentes tipos de valores. Una base de datos puede contener numerosas colecciones y cada colección puede contener varios documentos. En este artículo, lanzaremos una colección de MongoDB con la ayuda de comandos Pythonic. Cada colección tiene su propio esquema que depende de la estructura del documento.

Instalación de PyMongo

PyMongo es el controlador de Python a través del cual un programador interactúa con las bases de datos “MongoDB”. Proporciona una interfaz para realizar varias operaciones con datos de MongoDB desde Python. Podemos instalar "PyMongo" usando el administrador de paquetes de Python en la línea de comando:

pip install pymongo 

Una vez instalada la biblioteca PyMongo, la importamos en nuestro IDE local.

Creando una base de datos

Necesitamos una base de datos de referencia sobre la cual operaremos. Crear una base de datos MongoDB no es una tarea difícil. Tenemos que descargar la última versión de MongoDB de Internet e instalarla en el sistema. Después de esto iniciaremos el servidor “MongoDB”. Podemos usar un servidor predeterminado con un número de puerto predeterminado y comenzar con el proceso de “conexión”. Podemos crear manualmente una base de datos pasando el nombre de la base de datos y el nombre de la colección. Los datos se pueden importar en forma de archivo JSON o CSV.

Conectando MongoDB a Python a través de PyMongo

Este es el paso más crucial ya que implica la creación de una conexión entre las dos plataformas. Crearemos un objeto MongoClient con la ayuda de la función “pymongo.MongoClient()”. La conexión se establece pasando la dirección del servidor como argumento para esta función.

Sintaxis

Mongo_client = pymongo.MongoClient("Connection address") 

Apliquemos este método para establecer una conexión.

Crear una conexión para leer una colección en Python

Aquí estamos intentando leer una colección almacenada en MongoDB. En el ejemplo que se muestra a continuación:

  • Importamos la biblioteca “PyMongo” y creamos un objeto “MongoClient” que nos permite establecer una conexión y acceder a la base de datos.

  • Pasamos una dirección de servidor especificando el nombre de la dirección como "localhost", lo que significa que el servidor MongoDB se ejecuta en la misma máquina que el programa Python. Usamos el número de puerto predeterminado para el servidor MongoDB: "27017".

  • Después de esto especificamos la base de datos y el nombre de la colección.

  • Hemos creado una colección y la hemos poblado.

  • Usamos el método “find()” para recuperar los documentos almacenados en la colección.

Ejemplo

import pymongo
Mongo_client = pymongo.MongoClient("mongodb://localhost:27017/")

# Database name
database = Mongo_client["mydb"]

#Getting the database instance
database = Mongo_client['mydb']

#Creating a collection
collection = database['example']

#Inserting document into the collection
data = [{"_id": "101", "name": "Ram", "age": "26", "city": "Hyderabad"},
{"_id": "102", "name": "Rahim", "age": "27", "city": "Bangalore"},
{"_id": "103", "name": "Robert", "age": "28", "city": "Mumbai"}]
res = collection.insert_many(data)
print("Data inserted ......")

#Retreving the data
documents = collection.find()
print("Contents of the collection: ")
for document in documents:
   print(document)

Producción

Data inserted ......
Contents of the collection:
{'_id': '101', 'name': 'Ram', 'age': '26', 'city': 'Hyderabad'}
{'_id': '102', 'name': 'Rahim', 'age': '27', 'city': 'Bangalore'}
{'_id': '103', 'name': 'Robert', 'age': '28', 'city': 'Mumbai'}

Ahora que hemos creado una base de datos y una colección, veamos los métodos para eliminar una colección de la base de datos.

Eliminar la colección usando el método Drop()

Este es un método muy simple para eliminar una colección de la base de datos. Entendámoslo.

  • Después de establecer la conexión, utilizamos el método drop() para eliminar la colección de destino de la base de datos.

  • Una vez que se elimina la colección, no podemos recuperar sus documentos con la ayuda del método "find()".

  • Se devuelve “Ninguno” como resultado ya que se eliminó la colección.

Ejemplo

import pymongo
Mongo_client = pymongo.MongoClient("mongodb://localhost:27017/")

# Database name
database = Mongo_client["mydb"]

#Getting the database instance
database = Mongo_client['mydb']

#Creating a collection
collection = database['example']

documents = collection.find()
print("Contents of the collection: ")
for document in documents:
   print(document)

#dropping the collection
print(collection.drop())
print("Collection Dropped ......")

Producción

F:\Examples>python test.py
Contents of the collection:
{'_id': '101', 'name': 'Ram', 'age': '26', 'city': 'Hyderabad'}
{'_id': '102', 'name': 'Rahim', 'age': '27', 'city': 'Bangalore'}
{'_id': '103', 'name': 'Robert', 'age': '28', 'city': 'Mumbai'}
None
Collection Dropped ......

Si intenta abrir la base de datos MongoDB y verificar la colección, podrá observar que la colección

Conclusión

Este artículo se centra en una operación simple “MongoDB” para eliminar una “colección” que existe en una base de datos con la ayuda de la programación Python. Usamos la biblioteca “PyMongo” para acceder a la base de datos MongoDB. Establecimos una conexión y especificamos la base de datos de destino y el nombre de la colección. Finalmente, utilizamos el método “drop()” para eliminar la colección de la base de datos.