Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Índices para otimização de queries

Nesta página, você pode ver exemplos de código copiáveis que mostram como gerenciar diferentes tipos de índices usando a Biblioteca PHP do MongoDB .

Dica

Para saber mais sobre como trabalhar com índices, consulte o guia Considerações sobre gerenciamento e índices. Para saber mais sobre qualquer um dos índices mostrados nesta página, consulte o link fornecido em cada seção.

Para usar um exemplo desta página, copie o exemplo de código no aplicação de amostra ou em seu próprio aplicação. Certifique-se de definir a MONGODB_URI variável de ambiente para a string de conexão de sua implantação do MongoDB e substitua <database> os <collection> espaços reservados e por valores para seu namespace de destino.

Você pode usar o seguinte aplicativo de exemplo para testar os exemplos de código nesta página. Para usar o aplicativo de amostra, execute as seguintes etapas:

  1. Verifique se a biblioteca PHP do MongoDB está instalada em seu projeto. Para saber mais sobre como instalar a biblioteca PHP do MongoDB , consulte o guia de download e instalação .

  2. Copie o seguinte código e cole-o em um novo arquivo .php .

  3. Copie um exemplo de código desta página e cole-o nas linhas especificadas no arquivo.

Dica

The require statement in the sample application loads the MongoDB PHP Library and assumes that the vendor directory is in the same directory as your application file. If your application file is located elsewhere, adjust the path to vendor/autoload.php accordingly.

1<?php
2
3require __DIR__ . '/../vendor/autoload.php';
4
5$uri = getenv('MONGODB_URI') ?: throw new RuntimeException('Set the MONGODB_URI variable to your Atlas URI that connects to the sample dataset');
6$client = new MongoDB\Client($uri);
7
8$collection = $client->selectCollection('<database>', '<collection>');
9
10// Start example code here
11
12// End example code here

Alguns exemplos utilizam a função toJSON() para representar eventos de alteração, que são documentos BSON, como Extended JSON. Para usar essa função, cole o seguinte código no arquivo do seu aplicação :

function toJSON(object $document): string
{
return MongoDB\BSON\Document::fromPHP($document)->toRelaxedExtendedJSON();
}

O exemplo seguinte cria um índice ascendente no campo especificado:

$indexName = $collection->createIndex(['<field name>' => 1]);

Para saber mais sobre índices de campo único, consulte o guia Índices de campo único .

O exemplo seguinte cria um índice composto de dois índices ascendentes nos campos especificados:

$indexName = $collection->createIndex(
['<field name 1>' => 1, '<field name 2>' => 1],
);

Para saber mais sobre índices compostos, consulte o guia Índices compostos .

O exemplo a seguir cria um índice de múltiplas chaves ascendente no campo com valor de array especificado:

$indexName = $collection->createIndex(['<array field name>' => 1]);

Para saber mais sobre índices de várias chaves, consulte o guia Índices de várias chaves.

O exemplo seguinte cria um índice dsphere 2no campo especificado que tem valores de objeto GeoJSON:

$indexName = $collection->createIndex(
['<GeoJSON object field>' => '2dsphere'],
);

Para saber mais sobre o tipo de dados GeoJSON, consulte Objetos GeoJSON no manual do MongoDB Server .

O exemplo seguinte cria um índice único ascendente no campo especificado:

$indexName = $collection->createIndex(['<field name>' => 1], ['unique' => true]);

O exemplo seguinte cria um índice curinga ascendente na coleção:

$indexName = $collection->createIndex(['$**' => 1]);

É possível criar um índice clusterizado ao criar uma nova collection em um banco de banco de dados específico. O exemplo seguinte cria uma nova coleção com um índice agrupado ascendente no campo _id :

$options = [
'clusteredIndex' => [
'key' => ['_id' => 1],
'unique' => true,
],
];
$database->createCollection('<collection name>', $options);

O exemplo seguinte cria um índice de texto no campo de string especificado:

$indexName = $collection->createIndex(['<field name>' => 'text']);

O exemplo a seguir imprime uma lista de índices na coleção especificada:

foreach ($collection->listIndexes() as $indexInfo) {
echo $indexInfo;
}

O exemplo a seguir exclui um índice com o nome especificado:

$collection->dropIndex('<index name>');

Para saber mais sobre como excluir índices, consulte Remover um índice no guia Considerações e gerenciamento de índices.

As seções a seguir contêm exemplos de código que descrevem como gerenciar índice de pesquisa MongoDB e índice de pesquisa vetorial.

Observação

O gerenciamento do índice do MongoDB pesquisa e da MongoDB pesquisa vetorial é assíncrono

A Biblioteca PHP do MongoDB gerencia índices de Pesquisa MongoDB de forma assíncrona. Os métodos da biblioteca descritos nas seções a seguir retornam a resposta do servidor imediatamente, mas as alterações nos índices de pesquisa ocorrem em segundo plano e podem não ser concluídas até algum tempo depois.

Para saber mais sobre os índices de pesquisa do MongoDB, consulte o guia Índices de pesquisa do MongoDB.

O exemplo a seguir cria um índice de pesquisa do MongoDB no campo especificado:

$indexName = $collection->createSearchIndex(
['mappings' => ['dynamic' => true]],
['name' => '<Search index name>'],
);

O exemplo a seguir imprime uma lista de índices de pesquisa do MongoDB na coleção especificada:

foreach ($collection->listSearchIndexes() as $indexInfo) {
echo toJSON($indexInfo), PHP_EOL;
}

O exemplo a seguir atualiza um índice de pesquisa do MongoDB existente com a nova definição de índice especificada:

$collection->updateSearchIndex(
'<Search index name>',
['mappings' => [
'dynamic' => false,
'fields' => [
'<string field name>' => [
'type' => 'string',
'analyzer' => 'lucene.standard',
],
],
]],
);

O exemplo a seguir excluir um índice de pesquisa do MongoDB com o nome especificado:

$collection->dropSearchIndex('<Search index name>');