Imagem de destaque do blog justcode.com.br.

Como utilizar Python com o banco de dados MongoDB

Hoje veremos como utilizar a linguagem de programação Python com o banco de dados MongoDB através do conector pymongo.

Pymongo

O pymongo é uma biblioteca Python oficial que permite interagir com o MongoDB, um banco de dados NoSQL de código aberto.

Ele fornece uma API simples e intuitiva para trabalhar com o MongoDB, permitindo que os desenvolvedores criem, atualizem, consultem e excluam dados de maneira eficiente.


Posts relacionados:


    O pymongo pode ser instalado usando o pip, que é o gerenciador de pacotes padrão do Python:

    pip install pymongo

    Depois de instalado, você pode importar o conector em seus scripts Python e usá-lo para se conectar a um servidor Redis e executar operações de banco de dados.


    Contêiner

    Para testar o código de exemplo foi utilizando o seguinte arquivo docker-compose.yaml:

    services:
      db:
        image: mongo:latest
        container_name: MongoDB
        restart: on-failure
        ports:
          - '27017:27017'
        environment:
          MONGO_INITDB_ROOT_USERNAME: dbuser
          MONGO_INITDB_ROOT_PASSWORD: 123456
          MONGO_INITDB_DATABASE: database_name
    

    📝 Contêiner testado com Docker e com o Podman.


    Exemplo de CRUD

    # -*- coding: utf-8 -*-
    """CRUD - Python - pymongo - MongoDB."""
    
    from bson import ObjectId
    from pymongo import MongoClient, ReturnDocument
    
    client = MongoClient(
        username='dbuser',
        password='123456',
        host='localhost',
        port=27017,
        # authSource='admin',
    )
    
    # Conexão utilizando URI.
    # username = 'dbuser'
    # password = '123456'
    # host = 'localhost'
    # port = '27017'
    # db = 'database_name'
    # authSource = 'admin'
    # URI = f'mongodb://{username}:{password}@{host}:{port}/{db}' #?authSource={authSource}'
    # client = MongoClient(host=URI)
    
    db = client['database_name']
    
    # Remove collection.
    db.drop_collection('collection_name')
    
    # Create collection.
    collection = db['collection_name']
    
    # Create.
    print('[!] Create [!]')
    result = collection.insert_one(
        {
            'name': 'renato',
            'age': 35,
        },
    )
    obj_id = result.inserted_id
    print(obj_id)
    
    result = collection.insert_many(
        [
            {'name': 'maria', 'age': 25},
            {'name': 'sandy', 'age': 19},
    
        ],
    )
    print(result.inserted_ids)
    
    # Read.
    print('\n[!] Read [!]')
    print(collection.find_one({'_id': ObjectId(obj_id)}))
    
    # Limit.
    for document in collection.find().limit(3):
        print(document)
    
    # Update.
    print('\n[!] Update [!]')
    print(collection.find_one({'_id': ObjectId(obj_id)}))
    result = collection.find_one_and_update(
        {'_id': ObjectId(obj_id)},
        {'$set': {'name': 'joão'}},
        return_document=ReturnDocument.AFTER,
    )
    print(collection.find_one({'_id': ObjectId(obj_id)}))
    
    # Delete.
    print('\n[!] Delete [!]')
    print(collection.find_one({'_id': ObjectId(obj_id)}))
    result = collection.delete_one(
        {'_id': ObjectId(obj_id)},
    )
    print(collection.find_one({'_id': ObjectId(obj_id)}))
    
    client.close()
    

    Conclusão

    O MongoDB é uma poderosa ferramenta de banco de dados NoSQL que oferece flexibilidade, escalabilidade e desempenho para uma variedade de aplicações.

    Compreender os conceitos básicos, como documentos, coleções, consultas e índices, pode ajudá-lo a utilizar o MongoDB de forma eficaz em seus projetos de desenvolvimento.