Definição
Parâmetros
$key: array|objectEspecifica o campo ou campos para indexar e a ordem do índice.
Por exemplo, o seguinte especifica um índice descendente no campo
username:[ 'username' => -1 ] $options: arrayUma array especificando as opções desejadas.
O parâmetro
$optionsaceita ambas as opções de índice e comando. Veja a seguir uma lista não exaustiva de opções de índice. Para obter uma lista completa de opções de índice, consulte a referência de comando createIndexes no manual MongoDB .Opções de índice (não exaustivo)
agrupamentoarray|objectCollation allows users to specify language-specific rules for string comparison, such as rules for lettercase and accent marks. When specifying collation, thelocalefield is mandatory; all other collation fields are optional. For descriptions of the fields, see Collation Document.If the collation is unspecified but the collection has a default collation, the operation uses the collation specified for the collection. If no collation is specified for the collection or for the operation, MongoDB uses the simple binary comparison used in prior versions for string comparisons.expireAfterSeconds
inteiro
Cria um índice TTL .
name
string
Um nome que identifica exclusivamente o índice. Por padrão, o MongoDB cria nomes de índice com base na chave.
Expressão de filtro parcial
array|object
Cria um índice parcial .
Esparso
booleano
Cria um índice esparso .
unique
booleano
Cria um índice único .
Opções de comando
NomeTipoDescriçãocomment
misto
Permite ao usuário especificar um comentário arbitrário para ajudar a rastrear a operação por meio do profiler de banco de dados, da saída currentOp e dos registros.
Esta opção está disponível desde o MongoDB 4.4 e resultará em uma exceção no momento da execução se for especificada para uma versão mais antiga do servidor.
Novidades na versão 1.13.
commitQuorum
string|inteiro
Especifica quantos membros portadores de dados de um conjunto de réplicas, incluindo o primário, devem concluir as construções de índices com êxito antes que o primário marque os índices como prontos.
Essa opção aceita os mesmos valores para o campo
wem uma referência de escrita mais"votingMembers", que indica todos os nós portadores de dados de votação.Isto não é suportado para versões de servidor anteriores à 4.4 e resultará em uma exceção no tempo de execução se utilizado.
Novidades na versão 1.7.
maxTimeMS
inteiro
O limite de tempo cumulativo em milésimos de segundo para operações de processamento no cursor. O MongoDB aborta a operação o mais cedo possível após o ponto de interrupção.
Novidades na versão 1.3.
session
Sessão do cliente a ser associada à operação.
Novidades na versão 1.3.
writeConcern
Write concern a ser usada na operação. O padrão é a write concern da coleção.
Não é possível especificar uma write concern para operações individuais como parte de uma transação. Em vez disso, defina a opção
writeConcernao iniciar a transação.
Return Values
O nome do índice criado como uma string.
Erros/exceções
MongoDB\Exception\UnsupportedException se as opções forem usadas e não aceitas pelo servidor selecionado (p. ex., collation, readConcern, writeConcern).
MongoDB\Exception\InvalidArgumentException para erros relacionados à análise de parâmetros ou opções.
MongoDB\Driver\Exception\RuntimeException para outros erros no nível da extensão (por exemplo erros de conexão).
Exemplos
Criar um índice composto
The following example creates a compound index on the borough and cuisine fields in the restaurants collection in the test database.
$collection = (new MongoDB\Client)->selectCollection('test', 'restaurants'); $indexName = $collection->createIndex(['borough' => 1, 'cuisine' => 1]); var_dump($indexName);
A saída seria então semelhante a:
string(19) "borough_1_cuisine_1"
Criar um índice parcial
The following example adds a partial index on the borough field in the restaurants collection in the test database. The partial index indexes only documents where the borough field exists.
$collection = (new MongoDB\Client)->selectCollection('test', 'restaurants'); $indexName = $collection->createIndex( ['borough' => 1], [ 'partialFilterExpression' => [ 'borough' => ['$exists' => true], ], ] ); var_dump($indexName);
A saída seria então semelhante a:
string(9) "borough_1"
Veja também
Referência do comando createIndexes no manual MongoDB
Documentação de índices no Manual do MongoDB