¿Cómo reconstruir todos los índices de una colección usando PyMongo?

Según la documentación de MongoDB, normalmente, MongoDB compacta los índices durante las actualizaciones de rutina. Para la mayoría de los usuarios, el comando reIndex es innecesario. Sin embargo, puede valer la pena ejecutarlo si el tamaño de la colección ha cambiado significativamente o si los índices consumen una cantidad desproporcionada de espacio en disco.

Requisitos previos: Conceptos básicos de MongoDB Python Este artículo trata sobre la reconstrucción de los índices de la colección en MongoDB utilizando la función PyMongo reindex(). 

Los índices de la colección pueden ocupar más de una cantidad desproporcionada de espacio en disco y este problema se puede resolver reconstruyendo el índice de la colección. Comencemos con la reconstrucción del índice de la Colección:

Importación de módulos requeridos: Importe el módulo requerido usando el comando:

from pymongo import MongoClient

Si MongoDB ya no está instalado en su máquina, puede consultar la guía: Guía para instalar MongoDB con Python

Creación de una conexión: ahora que ya habíamos importado el módulo, es hora de establecer una conexión con el servidor MongoDB, presumiblemente que se ejecuta en localhost (nombre de host) en el puerto 27017 (número de puerto).

client = MongoClient(‘localhost’, 27017)

Acceso a la Base de Datos: Desde que se establece la conexión con el servidor MongoDB. Ahora podemos crear o usar la base de datos existente.

mydatabase = client.name_of_the_database

Accediendo a la Colección: Ahora seleccionamos la colección de la base de datos usando la siguiente sintaxis:

collection_name = mydatabase.name_of_collection

Índice de reconstrucción: 

collection_name.reindex()
  1. La declaración anterior reconstruye todos los índices. Utilice la declaración anterior con precaución, ya que la reconstrucción de los índices se lleva a cabo en primer plano y bloquea todas las operaciones en el servidor MongoDB.
  2. reindex() está en desuso en 3.11.
  3. A partir de 4.0, use el siguiente comando para reconstruir el índice. 
<db object>.command('reIndex', <collection name>)

python-mongodb-sample-database3

Ejemplo: base de datos de muestra

Python3

# Python Program for demonstrating the
# rebuilding of indexes in MongoDB
 
 
# Importing required modules
from pymongo import MongoClient
 
# Connecting to MongoDB server
# client = MongoClient('host_name',
# 'port_number')
client = MongoClient('localhost', 27017)
 
# Connecting to the database named
# GFG
mydatabase = client.GFG
 
# Accessing the collection named
# Student
mycollection = mydatabase.Student
 
# Now rebuilding all the indexes of
# the collection
mycollection.reindex()
 
# Use this starting from 4.0 version.
# mydatabase.command('reIndex', 'Student')

Producción:

python-reindex-mongodb 

Publicación traducida automáticamente

Artículo escrito por sumit_tyagi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *