MongoDB Indexación: createIndex() y dropIndex()
⚡ Resumen inteligente
MongoDB Los índices almacenan un subconjunto ordenado de los campos de una colección para que las consultas puedan localizar documentos sin tener que examinar cada registro. Los métodos createIndex, getIndexes y dropIndex crean, listan y eliminan estas estructuras, fundamentales para el rendimiento.

¿Qué son MongoDB Índices?
Los índices son muy importantes en cualquier base de datos, y con MongoDB No es diferente. Con el uso de índices, realizar consultas en MongoDB se vuelve más eficiente.
Si tuviera una colección con miles de documentos sin índices y luego realizara una consulta para encontrar ciertos documentos, entonces en tal caso MongoDB Necesitaría escanear toda la colección para encontrar los documentos. Pero si tuvieras índices, MongoDB utilizaría estos índices para limitar el número de documentos que debían buscarse en la colección.
Los índices son conjuntos de datos especiales que almacenan una parte de los datos de la colección. Al ser parciales, los datos son más fáciles de leer. Este conjunto parcial almacena el valor de un campo específico, o de un conjunto de campos, ordenados según el valor de dicho campo.
Comprender el impacto de los índices
Si bien la introducción ha demostrado que los índices son beneficiosos para las consultas, tener demasiados índices puede ralentizar otras operaciones, como las de inserción, eliminación y actualización.
Si se realizan operaciones frecuentes de inserción, eliminación y actualización de documentos, los índices tendrían que cambiar con la misma frecuencia, lo que supondría una sobrecarga para la colección.
El siguiente ejemplo muestra qué valores de campo podrían constituir un índice en una colección. Un índice puede basarse en un solo campo de la colección o en varios campos.
En el ejemplo siguiente, Employeeid “1” y EmployeeCode Las etiquetas “AA” se utilizan para indexar los documentos de la colección. De este modo, al realizar una búsqueda, estos índices permiten encontrar de forma rápida y eficiente los documentos necesarios.
Así que incluso si la consulta de búsqueda se basa en el empleadoCode “AA”, ese documento sería devuelto.
Cómo crear índices: createIndex()
Crear un índice en MongoDB se realiza utilizando el crearíndice método.
El siguiente ejemplo muestra cómo agregar un índice a una colección. Supongamos que tenemos nuestra misma colección de Empleados, que tiene los nombres de campo "Employeeid" y "EmployeeName".
db.Employee.createIndex({Employeeid:1})
Code Explicación:
- El crearíndice El método se utiliza para crear un índice basado en el "Employeeid" del documento.
- El parámetro “1” indica que cuando se crea el índice con los valores del campo “Employeeid”, estos deben ordenarse en orden ascendente. Tenga en cuenta que esto es diferente del campo _id (que identifica de forma única cada documento) que MongoDB Se crea automáticamente. Los documentos ahora se ordenarán según el campo Employeeid y no según el campo _id.
Si el comando se ejecuta correctamente, se mostrará la siguiente salida:
Salida:
- El valor numIndexesBefore: 1 indica la cantidad de valores de campo en los índices antes de que se ejecutara el comando. Cada colección tiene el campo _id, que también cuenta como un valor de campo, por lo que numIndexesBefore es 1.
- El valor numIndexesAfter: 2 indica la cantidad de valores de campo en los índices después de que se ejecutó el comando.
- La salida “ok: 1” indica que la operación se realizó correctamente y que el nuevo índice se ha añadido a la colección.
El código anterior muestra cómo crear un índice basado en el valor de un solo campo, pero también se puede crear un índice basado en varios valores de campo. El siguiente ejemplo muestra cómo hacerlo:
db.Employee.createIndex({Employeeid:1, EmployeeName:1})
El método createIndex ahora tiene en cuenta múltiples valores de campo, lo que provoca que el índice se cree en función de "Employeeid" y "EmployeeName". Los valores Employeeid:1 y EmployeeName:1 indican que el índice debe crearse con estos dos valores de campo, donde :1 indica orden ascendente. Esto se conoce como índice compuesto.
Cómo encontrar índices: getIndexes()
Encontrar un índice en MongoDB se realiza utilizando el obteneríndices método. El siguiente ejemplo muestra cómo se puede hacer:
db.Employee.getIndexes()
El método getIndexes se utiliza para encontrar todos los índices de una colección.
Si el comando se ejecuta correctamente, se mostrará la siguiente salida:
Salida:
El resultado devuelve un documento que muestra que la colección contiene dos índices: el campo _id y el campo Employeeid. El símbolo :1 indica que los valores de los campos del índice se crean en orden ascendente.
Cómo eliminar índices: dropIndex()
Eliminar un índice en MongoDB se realiza utilizando el índice de deshacer método. El siguiente ejemplo muestra cómo se puede hacer:
db.Employee.dropIndex({Employeeid:1})
El método dropIndex toma los valores de campo necesarios que deben eliminarse del índice.
Si el comando se ejecuta correctamente, se mostrará la siguiente salida:
Salida:
- El valor nIndexesWas: 3 indica la cantidad de valores de campo en los índices antes de ejecutar el comando. Cada colección tiene el campo _id, que también cuenta como un valor de campo.
- El resultado ok: 1 especifica que la operación fue exitosa y el campo "Employeeid" se elimina del índice.
Para eliminar todos los índices de una colección a la vez, se puede usar el comando dropIndexes. El siguiente ejemplo muestra cómo hacerlo:
db.Employee.dropIndexes()
El método dropIndexes eliminará todos los índices excepto el índice _id.
Si el comando se ejecuta correctamente, se mostrará la siguiente salida:
Salida:
- El valor nIndexesWas: 2 indica la cantidad de valores de campo en los índices antes de que se ejecutara el comando.
- Cada colección tiene el campo _id, que también cuenta como un valor de campo y no será eliminado por MongoDBEso es lo que indica este mensaje.
- El resultado ok: 1 especifica que la operación fue exitosa.










