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()
- 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.
- reindex() está en desuso en 3.11.
- A partir de 4.0, use el siguiente comando para reconstruir el índice.
<db object>.command('reIndex', <collection name>)
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:
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