MongoDB – Método db.collection.createIndexes()

El método createIndexes() crea uno o más índices en la colección especificada. Se utiliza para crear uno o más índices basados ​​en el campo del documento. Con este método, podemos crear diferentes tipos de índices, como índice de texto, índice de 2dsphere, índice de 2d, etc. Se necesitan tres parámetros: el primero es un documento que contiene los pares de campo y valor donde el campo es la clave de índice y el valor describe el tipo de índice para ese campo, y otros son opcionales. 

  • Si el índice ya se creó o existe, este método no vuelve a crear el índice existente.
  • Puede ocultar y mostrar un índice usando el método hideIndex() y unhideIndex().

Sintaxis:

db.Collection_name.createIndexes(

patrones de teclas: [{Field_name:1/-1},…….],

opciones: <documento>,

commitQuorum : <string o entero>

)

Parámetros:

  • El primer parámetro es una array de uno o más documentos que contienen los pares de campo y valor donde el campo es la clave de índice y el valor describe el tipo de índice para ese campo. O, en otras palabras, este parámetro es una array que contiene los documentos de especificación de índice y cada documento contiene los pares de campo y valor donde el campo es la clave de índice y el valor describe el tipo de índice para ese campo. Para un índice ascendente en un campo, especifique el valor 1 y para un índice descendente, especifique el valor -1.
  • Otros son opcionales.

Parámetros opcionales:

  • Opciones: Es un conjunto de opciones que controla la creación del índice. El tipo de este parámetro es un documento.
  • commitQuorum: es el número mínimo de miembros del conjunto de réplicas de votación que contienen datos.

Opciones:

Hay un conjunto de opciones en el documento de opciones que controla la creación de índices. Diferentes tipos de índices pueden tener opciones adicionales específicas para ese tipo. Las siguientes opciones están disponibles:

  • background: el tipo de esta opción es booleano. Esta opción toma el valor verdadero o falso si es verdadero, luego le indica a MongoDB que construya el índice en segundo plano. El valor predeterminado de esta opción es falso. Las compilaciones en segundo plano no bloquean las operaciones en la colección.
  • único: El tipo de esta opción es booleano. Especifica que se usa un índice único para cada índice enumerado en la array keyPatterns. La inserción o modificación de documentos en los que el valor de la clave del índice hace referencia a un valor existente en el índice no sería aceptada por índices específicos. Para crear un índice único, establezca el valor en verdadero. El valor predeterminado es falso.
  • nombre: El tipo de esta opción es una string. Toma una string que es el nombre del índice. Si no se especifica, MongoDB crea un nombre concatenando los nombres de los campos indexados y el orden de clasificación.
  • expresiónFiltroParcial:  El tipo de esta opción es documento. Si se especifica, los índices solo hacen referencia a documentos que coinciden con la expresión de consulta.
  • sparse: El tipo de esta opción es booleano. El valor predeterminado de esta opción es falso. Si establecemos su valor en verdadero, los índices solo hacen referencia a documentos con los campos especificados.
  • expireAfterSeconds: el tipo de esta opción es un número entero. Especifica un valor para monitorear cuánto tiempo MongoDB retiene los documentos en esta colección, en segundos.
  • oculto: El tipo de esta opción es booleano. El valor predeterminado de esta opción es falso. Una marca que especifica si el índice en el planificador de consultas está oculto. Como parte de la selección del plan de consulta, no se evalúa un índice oculto.
  • storageEngine: El tipo de esta opción es document. Permite a los usuarios configurar el motor de almacenamiento para los índices creados.

Algunos índices pueden tener opciones adicionales que se especifican para ese tipo solo como:

Para índices de texto:

Todos estos parámetros son opcionales:

  • pesos : Es de tipo documento y contiene los pares de campo y peso para índice de texto. El valor predeterminado de este parámetro es 1.
  • default_language: Es de tipo string y especifica el idioma que determina la lista de palabras vacías y las reglas para lematizador y tokenizador.
  • language_override: es de tipo string y especifica el nombre de los campos en el documento que contiene el idioma de reemplazo para el documento.
  • textIndexVersion: Es de tipo entero y especifica el número de versión del índice de texto.

Para índices de 2dsphere:

2dsphereIndexVersion: es de tipo entero y especifica el número de versión del índice 2dsphere. Es un parámetro opcional.

Para índices 2d:

Todos estos parámetros son opcionales:

  • bits: es de tipo entero y especifica el número de precisión del valor geohash almacenado de los datos de ubicación. El valor predeterminado de este parámetro es 26.
  • min: es de tipo numérico y especifica el límite inferior inclusivo para los valores de longitud y latitud. El valor predeterminado de este parámetro es -180.0.
  • max: es de tipo numérico y especifica el límite superior inclusivo para los valores de longitud y latitud. El valor predeterminado de este parámetro es -180.0.

Para índices geoHaystack:

bucketSize: Es de tipo numérico y especifica el número de unidades dentro de las cuales agrupar los valores locales. El valor de este parámetro debe ser mayor que 0. 

Para índices comodín:

wildcardProjection: es de tipo documento y permite a los usuarios incluir o excluir rutas de campos específicos del índice de comodines. Solo es válido si está creando un índice comodín. Es un parámetro opcional.

Ejemplos:

En los siguientes ejemplos, estamos trabajando con:

Base de datos: gfg

Colecciones: empleado

Documento: Tres documentos contienen los detalles de los empleados

  • Cree un índice ascendente en el nombre de campo único:
db.employee.createIndexes([{name:1}])

Aquí, creamos un índice en el campo de nombre en orden ascendente.

  • Cree un índice descendente en el nombre de campo único:
db.employee.createIndexes([{name:-1}])

Aquí, creamos un índice en el campo de nombre en orden descendente.

  • Cree un índice en los campos múltiples: índice ascendente en el nombre e índice descendente en el idioma:
db.employee.createIndexes([{name:1,department:-1}]

Aquí, creamos los índices en varios campos, es decir, índice ascendente en el campo de nombre e índice descendente en el campo de departamento.

  • Crea los índices únicos ascendentes en el campo joinYear:
db.employee.createIndexes([{joinYear:1}],{unique:true})

Aquí, creamos los índices únicos ascendentes en el campo joinYear estableciendo el valor del parámetro único en verdadero.

  • Crea los índices dispersos descendentes en el campo joinYear:
 db.employee.createIndexes([{joinYear:-1}],{sparse:true})

Aquí, creamos los índices dispersos descendentes en el campo joinYear estableciendo el valor del parámetro disperso en verdadero.

  • Crea un índice comodín en el campo de nombre:
db.employee.createIndexes([{"name.$**":1}])

Publicación traducida automáticamente

Artículo escrito por nikhilchhipa9 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 *