Menu Docs

Página inicial do DocsDesenvolver aplicaçõesDrivers PythonPyMongo

Otimizar queries com índices

Nesta página

  • Visão geral
  • Aplicativo de amostra
  • Índice de campo único
  • Índice composto
  • Multikey Index
  • Índice de Pesquisa do Atlas
  • Criar Índice de Atlas Search
  • Listar índices de pesquisa
  • Atualizar índices de pesquisa
  • Excluir índices Atlas Search
  • Text Index
  • Índice Geoespacial
  • índice único
  • Índice curinga
  • Índices clusterizados
  • Remover um Índice

Nesta página, você pode ver exemplos de código copiáveis que mostram como trabalhar com tipos comuns de índices que você pode usar com o PyMongo.

Dica

Para saber mais sobre como trabalhar com índices, consulte o guia Trabalhar com í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 para oaplicativo de amostra ou para seu próprio aplicativo. Certifique-se de substituir todos os espaços reservados nos exemplos de código, como <connection string URI>, pelos valores relevantes para sua implantação do MongoDB.

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 o PyMongo está instalado.

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

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

1import pymongo
2from pymongo import MongoClient
3
4try:
5 uri = "<connection string URI>"
6 client = MongoClient(uri)
7
8 database = client["<database name>"]
9 collection = database["<collection name>"]
10
11 # start example code here
12
13 # end example code here
14
15 client.close()
16
17except Exception as e:
18 raise Exception(
19 "The following error occurred: ", e)
result = collection.create_index("<field name>")
print(f'Index created: {result}')

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

result = collection.create_index([
("<field name one>", pymongo.ASCENDING),
("<field name two>", pymongo.ASCENDING)
])
print(f"Index created: {result}")

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

result = collection.create_index("<array field name>")
print(f'Index created: {result}')

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

Para saber mais sobre os índices do Atlas Search , consulte o guia Índices doAtlas Search .

index = {
"definition": {
"mappings": {
"dynamic": True
}
},
"name": "<index name>",
}
collection.create_search_index(index)

Para saber mais sobre como criar índices de pesquisa, consulte o guia Criar um índice do Atlas Search .

results = list(collection.list_search_indexes())
print('Existing search indexes:\n')
for index in results:
print(index)

Para saber mais sobre como listar índices do Atlas Search , consulte o guia Listar índices do Atlas Search .

new_index = {
"definition": {
"mappings": {
"dynamic": True
}
},
"name": "<index name>",
}
collection.update_search_index("<name of index to update>", new_index)
print(f"Search index updated: {result}")

Para saber mais sobre como atualizar índices do Atlas Search , consulte o guia Atualizar um índice do Atlas Search .

collection.drop_index("<index name>")
print(f"Search index deleted: {result}")

Para saber mais sobre como excluir índices do Atlas Search , consulte o guia Excluir um índice do Atlas Search .

result = collection.create_index(
[( "<field name>", "text")],
default_language="english",
weights={ "<field name>": 10 }
)
print(f"Index created: {result}")

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

result = collection.create_index([("<GeoJSON object field>", "2dsphere")])
print(f'Index created: {result}')

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

result = collection.create_index("<field name>", unique=True)
print(f"Index created: {result}")

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

result = collection.create_index({"$**": pymongo.ASCENDING})
print(f'Index created: {result}')

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

collection = database.create_collection("<collection name>", clusteredIndex={
"key": {"_id": 1},
"unique": True
})

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

collection.drop_index("<index_name>")

Para saber mais sobre como remover índices, consulte Remover um índice no guia Trabalhar com índices.

← Acessar dados de um cursor