Menu Docs
Página inicial do Docs
/ / /
Manual da Biblioteca PHP
/ /

MongoDB\Collection::createIndex()

Nesta página

  • Definição
  • Parâmetros
  • Valores de retorno
  • Erros/exceções
  • Exemplos
  • Veja também
MongoDB\Collection::createIndex()

Crie um índice para a collection.

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

Especifica 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 : array

Uma 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)

agrupamento
array|object

A 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 .
único
booleano
Cria um índice único .

Opções de comando

Nome
Tipo
Descrição
comentário
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.

Escreva preocupação

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.

O nome do índice criado como uma string.

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).

O exemplo seguinte cria um índice composto nos campos borough e cuisine na coleção restaurants no banco de dados test .

<?php
$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"

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.

<?php
$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"

Voltar

countDocuments()

Próximo

createIndexes()