Início rápido: Introdução ao MongoDB Atlas e Python
Avalie esse Início rápido
- Como configurar o MongoDB Atlas no cloud
- Como carregar dados de amostra
- Como consultar dados de amostra usando a biblioteca PyMongo
- Você pode escolher qualquer instância de nuvem.
- Escolha o nível “FREE.
- Siga o assistente de configuração e atribua um nome à sua instância.
- Anote seu nome de usuário e senha para se conectar à instância.
- Adicione 0.0.0.0/0 à lista de acesso IP.
Isso torna a instância disponível a partir de qualquer endereço IP, o que é adequado para uma instância de teste.
Veja a captura de tela abaixo para saber como adicionar o IP:
Em seguida, vamos carregar os conjuntos de dados de amostra disponíveis no Atlas por padrão. Observe que o carregamento dos dados pode demorar alguns minutos.
Você pode navegar pelos dados na UI do Atlas. Vejamos a coleçãoembedded_movies no banco de dadossample_mflix . Você verá que cada documento tem detalhes como título, ano, lote etc.
Para conectar ao Atlas, precisamos da connection string MongoDB. Veja como você consegue isso:
- Navegue até a IU do Atlas.
- Selecione o banco de dados ao qual você deseja se conectar.
- Escolha a opçãoConectar para prosseguir.
- Na seção de conexão, clique em Drivers para ver os detalhes da conexão.
- Por fim, copie a cadeia de conexão exibida para uso na configuração do aplicativo.
Veja as capturas de tela abaixo para obter orientação:
Depois de obter a connection string, atribua-a a uma variável em seu código Python:
1 ATLAS_URI = "Enter your Atlas URI value here"
Estamos mantendo isso muito simples para fins deste início rápido. Para sistemas de produção, considere usar bibliotecas como python-dotenv para obter definições de configuração.
Para nos conectar ao nosso Atlas cluster usando o cliente PyMongo , precisaremos instalar as seguintes bibliotecas:
1 ! pip install pymongo[srv]==4.6.2
Precisamos apenas de um pacote aqui:
- pymongo: biblioteca Python para se conectar ao MongoDB Atlas.
Esta classe
AtlasClient
lidará com tarefas como estabelecer conexões, executar queries etc. Ela tem os seguintes métodos:- init: Inicializa um objeto da classe AtlasClient, com o cliente MongoDB (
mongodb_client
) e o nome do banco de dados (database
) como atributos - ** ping: Usado para testar se podemos conectar ao nosso cluster do Atlas
- get_collection: A coleção do MongoDB à qual se conectar
- encontrar: Retorna os resultados de uma query; leva o nome da collection (
collection
) para consultar e quaisquer critérios de pesquisa (filter
) como argumentos
1 from pymongo import MongoClient 2 3 class AtlasClient (): 4 5 def __init__ (self, altas_uri, dbname): 6 self.mongodb_client = MongoClient(altas_uri) 7 self.database = self.mongodb_client[dbname] 8 9 ## A quick way to test if we can connect to Atlas instance 10 def ping (self): 11 self.mongodb_client.admin.command('ping') 12 13 def get_collection (self, collection_name): 14 collection = self.database[collection_name] 15 return collection 16 17 def find (self, collection_name, filter = {}, limit=0): 18 collection = self.database[collection_name] 19 items = list(collection.find(filter=filter, limit=limit)) 20 return items
Nesta fase, estabeleceremos uma conexão com a collectionembedded_movies dentro do banco de dadossample_mflix. Para confirmar que nossa conexão foi bem-sucedida, realizaremos uma operação
ping()
.1 DB_NAME = 'sample_mflix' 2 COLLECTION_NAME = 'embedded_movies' 3 4 atlas_client = AtlasClient (ATLAS_URI, DB_NAME) 5 atlas_client.ping() 6 print ('Connected to Atlas instance! We are good to go!')
Se você receber um erro “Connection failed, certifique-se 0.0.0.0/0 é adicionado como um endereço IP permitido para conexão (consulte Etapa 1).
Vamos executar uma Atlas Search por filmes usando o método
find()
. O métodofind()
usa dois parâmetros. O primeiro parâmetro, collection_name
, determina a specific collection a ser consultada — neste caso, incorporado_movies. O segundo parâmetro, limit
, restringe a pesquisa para retornar apenas o número especificado de resultados — neste caso, 5.1 movies = atlas_client.find (collection_name=COLLECTION_NAME, limit=5) 2 print (f"Found {len (movies)} movies") 3 4 # print out movie info 5 for idx, movie in enumerate (movies): 6 print(f'{idx+1}\nid: {movie["_id"]}\ntitle: {movie["title"]},\nyear: {movie["year"]}\nplot: {movie["plot"]}\n')
Os resultados são retornados como uma lista e estamos simplesmente iterando sobre eles e imprimindo os resultados.
1 Found 5 movies 2 1 3 id: 573a1390f29313caabcd5293 4 title: The Perils of Pauline, 5 year: 1914 6 plot: Young Pauline is left a lot of money when her wealthy uncle dies. However, her uncle's secretary has been named as her guardian until she marries, at which time she will officially take ... 7 8 2 9 id: 573a1391f29313caabcd68d0 10 title: From Hand to Mouth, 11 year: 1919 12 plot: A penniless young man tries to save an heiress from kidnappers and help her secure her inheritance. 13 ...
Se quisermos fazer query por um determinado atributo, podemos passar um argumento
filter
para o métodofind()
. filter
é um dicionário com pares de valores-chave. Portanto, para encontrar filmes do ano 1999, definimos o filtro como {"year" : 1999}
.1 movies_1999 = atlas_client.find(collection_name=COLLECTION_NAME, 2 filter={"year": 1999}
Observamos que 81 filmes retornam como resultado. Vamos imprimir os primeiros.
1 ======= Finding movies from year 1999 ========================= 2 Found 81 movies from the year 1999. Here is a sample... 3 1 4 id: 573a139af29313caabcf0cfd 5 title: Three Kings, 6 year: 1999 7 plot: In the aftermath of the Persian Gulf War, 4 soldiers set out to steal gold that was stolen from Kuwait, but they discover people who desperately need their help. 8 9 2 10 id: 573a139af29313caabcf0e61 11 title: Beowulf, 12 year: 1999 13 plot: A sci-fi update of the famous 6th Century poem. In a beseiged land, Beowulf must battle against the hideous creature Grendel and his vengeance seeking mother. 14 …
Neste início rápido, aprenderam como configurar o MongoDB Atlas na nuvem, carregamos alguns dados de exemplo em nosso cluster e executamos query dos dados usando o cliente PyMongo . Para aproveitar o que você aprendera neste início rápido, aqui estão mais alguns recursos:
Principais comentários nos fóruns
Ainda não há comentários sobre este artigo.