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

MongoDB\Collection::createIndex()

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 .

unique

booleano

Cria um índice único .

Opções de comando

Nome
Tipo
Descrição

comment

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.

Para usar esta opção, você deve se conectar ao MongoDB 6.0 ou posterior. Se você estiver conectado a uma versão anterior, o servidor retornará uma exceção no tempo de execução.

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.

Para usar esta opção, você deve se conectar ao MongoDB 6.0 ou posterior. Se você estiver conectado a uma versão anterior, o servidor retornará uma exceção no tempo de execução.

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.

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)->getCollection('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)->getCollection('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()

Nesta página