Docs Menu
Docs Home
/ /

MongoDB\Collection::createIndex()

MongoDB\Collection::createIndex()

Crear un índice para la colección.

function createIndex(
array|object $key,
array $options = []
): string
$key : matriz|objeto

Especifica el campo o campos a indexar y el orden de indexación.

Por ejemplo, lo siguiente especifica un índice descendente en el campo username:

[ 'username' => -1 ]
$options : matriz

Una matriz que especifica las opciones deseadas.

El $options parámetro acepta opciones de índice y de comando. A continuación, se incluye una lista no exhaustiva de opciones de índice. Para obtener una lista completa de opciones de índice, consulte Referencia del comandocreateIndexes en el manual de MongoDB.

Opciones de índice (no exhaustivas)

intercalación
matriz|objeto

Laintercalació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 locale campo es obligatorio; todos los demás campos son opcionales. Para obtener descripciones de los campos, consulte el documento de intercalación.

Si no se especifica la intercalación, pero la colección tiene una predeterminada, la operación utiliza la intercalación especificada para la colección. Si no se especifica ninguna intercalación para la colección ni para la operación, MongoDB utiliza la comparación binaria simple utilizada en versiones anteriores para las comparaciones de cadenas.

expirarDespuésDeSegundos

entero

Crea un índice TTL.

Nombre

string

Un nombre que identifica de forma única el índice. De forma predeterminada, MongoDB crea nombres de índice basados ​​en la clave.

expresión de filtro parcial

matriz|objeto

Crea un índice parcial.

sparse

booleano

Crea un índice disperso.

unique

booleano

Crea un índice único.

Opciones de comando

Nombre
Tipo
Descripción

comment

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 generará una excepción en el momento de ejecución si se especifica para una versión de servidor anterior.

Novedades en la versión 1.13.

commitQuorum

cadena|entero

Especifica cuántos miembros portadores de datos de un conjunto de réplicas, incluido el principal, deben completar las compilaciones de índices exitosamente antes de que el principal marque los índices como listos.

Esta opción acepta los mismos valores para el campo w en 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.

Nuevo en la versión 1.7.

maxTimeMS

entero

El límite de tiempo acumulado en milisegundos para procesar operaciones en el cursor. MongoDB cancela la operación en el punto de interrupción posterior más cercano.

Nuevo en la versión 1.3.

sesión

Sesión de cliente para asociar a la operación.

Nuevo en la versión 1.3.

writeConcern

Escriba la preocupación que se usará para la operación. El valor predeterminado es la preocupación de escritura 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 writeConcern opción al iniciar la transacción.

El nombre del índice creado como una cadena.

MongoDB\Exception\UnsupportedException si se utilizan opciones que no son compatibles con el servidor seleccionado (porcollation readConcernwriteConcernejemplo,,,).

MongoDB\Exception\InvalidArgumentException para 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).

El siguiente ejemplo crea un índice compuesto borough cuisine en los campos y de la restaurants colección de la test base de datos.

<?php
$collection = (new MongoDB\Client)->getCollection('test', 'restaurants');
$indexName = $collection->createIndex(['borough' => 1, 'cuisine' => 1]);
var_dump($indexName);

El resultado sería entonces similar a lo siguiente:

string(19) "borough_1_cuisine_1"

El siguiente ejemplo agrega un índice parcial al borough campo de la restaurants colección de la test base de datos. El índice parcial indexa únicamente los documentos donde borough existe el campo.

<?php
$collection = (new MongoDB\Client)->getCollection('test', 'restaurants');
$indexName = $collection->createIndex(
['borough' => 1],
[
'partialFilterExpression' => [
'borough' => ['$exists' => true],
],
]
);
var_dump($indexName);

El resultado sería entonces similar a lo siguiente:

string(9) "borough_1"

Volver

contarDocumentos()

En esta página