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: arregloUn arreglo que especifica las opciones deseadas.
El parámetro
$optionsacepta tanto índices como opciones de comando. A continuación se muestra una lista no exhaustiva de opciones de índice. Para obtener una lista completa de opciones de índices, consulta la referencia del comando createIndexes en el manual de MongoDB.Opciones de índices (no exhaustivas)
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 perfilador de bases de datos, la salida actualOp() y 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.
Nuevo en la versión 1.13.
commitQuorum
cadena de texto|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 la 4.4 y si se utiliza, dará lugar a una excepción en el momento de la ejecución.
Nuevo en la versión 1.7.
maxTimeMS
entero
El límite de tiempo acumulativo en milisegundos para las operaciones de procesamiento en el cursor. MongoDB aborta la operación lo antes posible tras el punto de interrupción.
Nuevo en la versión 1.3.
sesión
Sesión de cliente para asociar con la operación.
Nuevo 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 un nivel de confirmación de escritura (write concern) para operaciones individuales como parte de una transacción. En su lugar, configura la opción
writeConcernal iniciar la transacción.
Return Values
El nombre del índice creado como un string.
Errores/Excepciones
MongoDB\Exception\UnsupportedException si se usan opciones que no sean compatibles con el servidor seleccionado (p. ej. collation, readConcern, writeConcern).
MongoDB\Exception\InvalidArgumentException por errores relacionados con el análisis de parámetros u opciones.
MongoDB\Driver\Exception\RuntimeException para otros errores a 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 en la restaurants colección en 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 agrega un índice parcial al borough campo en la restaurants colección de la test base de datos. El índice parcial indexa solo los documentos donde borough existe el campo.
$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
Índice documentación en el Manual de MongoDB