Definición
Parámetros
$key: arreglo|objetoEspecifica el campo o los campos a indexar y el orden del índice.
Por ejemplo, lo siguiente especifica un índice descendente en el campo
username:[ 'username' => -1 ] $options: arregloUna matriz que especifica las opciones deseadas.
El parámetro
$optionsacepta tanto opciones de índice como de comando. A continuación, se muestra una lista no exhaustiva de opciones de índices. Para obtener la lista completa de opciones de índices, consulte el createIndexes referencia de comandos en el manual de MongoDB.Opciones de índice (no exhaustivas)
intercalaciónarreglo|objetoLaintercalación permite a los usuarios especificar reglas específicas del idioma para la comparación de cadenas, como el uso de mayúsculas y minúsculas y tildes. Al especificar la intercalación, el
localecampo es obligatorio; todos los demás campos son opcionales. Para obtener descripciones de los campos, consulte el documento de intercalación.Si la intercalación no está especificada pero la colección tiene una intercalación predeterminada, la operación utiliza la intercalación especificada para la colección. Si no se especifica una intercalación para la colección o para la operación, MongoDB utiliza la comparación binaria simple utilizada en versiones anteriores para comparar cadenas.
expireAfterSeconds
entero
Nombre
string
Un nombre que identifique el índice unívocamente. Por defecto, MongoDB crea nombres de índices basados en la clave.
Expresión de filtro parcial
arreglo|objeto
Crea un índice parcial.
sparse
booleano
unique
booleano
Crea un índice único.
Opciones de comando
NombreTipoDescripcióncomment
mixto
Permite a los usuarios especificar un comentario arbitrario para ayudar a rastrear la operación a través del generador de perfiles de base de datos, la salidacurrentOp y los registros.
Esta opción está disponible desde MongoDB 4.4 y, si se especifica para una versión de servidor anterior, dará lugar a una excepción en tiempo de ejecución.
Novedades en la versión 1.13.
commitQuorum
cadena|entero
Especifica cuántos nodos portadores de datos de un set de réplicas, incluido el primario, deben completar la construcción de índices con éxito antes de que el primario marque los índices como listos.
Esta opción acepta los mismos valores para el campo
wen un nivel de confirmación de escritura (write concern), más"votingMembers", lo que indica todos los nodos votantes con datos.Esto no es compatible con versiones de servidor anteriores a 4.4 y generará una excepción en el momento de ejecución si se utiliza.
Novedades en la versión 1.7.
maxTimeMS
entero
El límite de tiempo acumulado en milisegundos para las operaciones de procesamiento en el cursor. MongoDB aborta la operación en el siguiente punto de interrupción..
Nueva en la versión 1.3.
sesión
Sesión de cliente para asociar a la operación.
Nueva en la versión 1.3.
writeConcern
nivel de confirmación de escritura (write concern) a usar en la operación. Por defecto, se aplica el nivel de confirmación de escritura (write concern) de la colección.
No es posible especificar una preocupación de escritura para operaciones individuales como parte de una transacción. En su lugar, configure la
writeConcernopción al iniciar la transacción.
Return Values
El nombre del índice creado como un string.
Errores/Excepciones
MongoDB\Exception\UnsupportedException si se utilizan opciones que no son compatibles con el servidor seleccionado (porcollation readConcernwriteConcernejemplo,,,).
MongoDB\Exception\InvalidArgumentException por errores relacionados con el análisis de parámetros u opciones.
MongoDB\Driver\Exception\RuntimeException para otros errores en el nivel de extensión (por ejemplo, errores de conexión).
Ejemplos
Crear un índice compuesto
El siguiente ejemplo crea un índice compuesto borough cuisine en los campos y de la restaurants colección de la test base de datos.
$collection = (new MongoDB\Client)->selectCollection('test', 'restaurants'); $indexName = $collection->createIndex(['borough' => 1, 'cuisine' => 1]); var_dump($indexName);
La vista de salida se ilustraría como sigue:
string(19) "borough_1_cuisine_1"
Crear un índice parcial
El siguiente ejemplo añade un índice parcial en el campo borough de la colección restaurants en la base de datos test. El índice parcial indexa únicamente los documentos donde existe el campo borough.
$collection = (new MongoDB\Client)->selectCollection('test', 'restaurants'); $indexName = $collection->createIndex( ['borough' => 1], [ 'partialFilterExpression' => [ 'borough' => ['$exists' => true], ], ] ); var_dump($indexName);
La vista de salida se ilustraría como sigue:
string(9) "borough_1"
Ver también
Referencia del comando createIndexes en el manual de MongoDB
Documentación delíndice en el Manual de MongoDB