Página inicial do Docs → Desenvolver aplicações → Drivers Python → PyMongo
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
Visão geral
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.
Aplicativo de amostra
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:
Verifique se o PyMongo está instalado.
Copie o seguinte código e cole-o em um novo arquivo
.py
.Copie um exemplo de código desta página e cole-o nas linhas especificadas no arquivo.
1 import pymongo 2 from pymongo import MongoClient 3 4 try: 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 17 except Exception as e: 18 raise Exception( 19 "The following error occurred: ", e)
Índice de campo único
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 .
Índice composto
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 .
Multikey Index
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.
Índice de Pesquisa do Atlas
Para saber mais sobre os índices do Atlas Search , consulte o guia Índices doAtlas Search .
Criar Índice de Atlas 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 .
Listar índices de pesquisa
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 .
Atualizar índices de pesquisa
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 .
Excluir índices 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 .
Text Index
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 .
Índice Geoespacial
result = collection.create_index([("<GeoJSON object field>", "2dsphere")]) print(f'Index created: {result}')
Para saber mais sobre índices geoespaciais, consulte o guia Índices geoespaciais .
índice único
result = collection.create_index("<field name>", unique=True) print(f"Index created: {result}")
Para saber mais sobre índices únicos, consulte o guia Índices únicos .
Índice curinga
result = collection.create_index({"$**": pymongo.ASCENDING}) print(f'Index created: {result}')
Para saber mais sobre índices curinga, consulte o guia Índices curinga .
Índices clusterizados
collection = database.create_collection("<collection name>", clusteredIndex={ "key": {"_id": 1}, "unique": True })
Para saber mais sobre índices curinga, consulte o guia Índices agrupados .
Remover um Índice
collection.drop_index("<index_name>")
Para saber mais sobre como remover índices, consulte Remover um índice no guia Trabalhar com índices.