MongoDB\Collection::createIndex()
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
$options
aceita 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 do MongoDB .Opções de índice (não exaustivo)
agrupamentoarray|objectA colocação permite que os usuários especifiquem regras específicas do idioma para comparação de string , como regras para letras maiúsculas e marcas de acento. Ao especificar agrupamento, o campo
locale
é obrigatório; todos os outros campos de agrupamento são opcionais. Para obter descrições dos campos, consulte Documento de agrupamento.Se o agrupamento não for especificado, mas a coleção tiver um agrupamento padrão, a operação usará o agrupamento especificado para a coleção. Se nenhum agrupamento for especificado para a coleção nem para a operação, o MongoDB usará a comparação binária simples usada nas versões anteriores para comparações de strings.
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.
Novidade 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
w
em 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.
Novidade 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.
Novidade na versão 1.3.
session
Sessão do cliente a ser associada à operação.
Novidade na versão 1.3.
writeConcern
Preocupação de gravação a ser usada na operação. O padrão é a preocupação de gravação da coleção.
Não é possível especificar uma preocupação de gravação para operações individuais como parte de uma transação. Em vez disso, defina a opção
writeConcern
ao 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
O exemplo seguinte cria um índice composto nos campos borough
e cuisine
na coleção restaurants
no banco de dados test
.
$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
O exemplo seguinte adiciona um índice parcial no campo borough
na coleção restaurants
no banco de dados test
. O índice parcial indexa apenas documentos onde o campo borough
existe.
$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