Skip to main content

Mongo DB

Configurações do MongoDB e Mongo Express

Para o correto funcionamento do banco de dados MongoDB e da interface administrativa Mongo Express em ambiente de desenvolvimento, são necessários dois serviços: o MongoDB e o Mongo Express. A seguir, detalhamos as configurações de cada serviço:


Serviço MongoDB

O MongoDB é configurado como o banco de dados principal. Ele é configurado usando o Docker, e as variáveis de ambiente necessárias para a conexão estão definidas nos arquivos .env.dev, .env.env.production que contém informações sensíveis, como nome do banco de dados e credenciais de acesso. 

Configuração do MongoDB (docker-compose)


services:
  mongo: 
    image: mongo 
    env_file: 
      - .env.dev # Arquivo de variáveis de ambiente 
    ports: 
      - "27017:27017" # Expondo a porta padrão do MongoDB 
    volumes: 
      - dbdata-volume:/data/db # Volume persistente para dados 
    environment: 
      MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE} # Nome do banco de dados 
      MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} # Nome de usuário admin 
      MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} # Senha do usuário admin
  • Imagem: A imagem Docker utilizada é a oficial do MongoDB (mongo).

  • Variáveis de Ambiente: O arquivo .env.dev é responsável por fornecer as variáveis de ambiente, como o nome do banco de dados, o usuário admin e a senha.

  • Portas: O MongoDB estará disponível na porta 27017, a porta padrão.

  • Volumes: O volume dbdata-volume garante que os dados do banco sejam persistidos entre reinicializações do container.

  • Variáveis de Ambiente:

    • MONGO_INITDB_DATABASE: Define o nome do banco de dados inicial.

    • MONGO_INITDB_ROOT_USERNAME: Nome do usuário root/admin do MongoDB.

    • MONGO_INITDB_ROOT_PASSWORD: Senha para o usuário root/admin do MongoDB.


Serviço Mongo Express

Mongo Express é uma interface web administrativa para o MongoDB, permitindo que você visualize e manipule dados diretamente via navegador. Ele também está configurado com Docker e se comunica com o banco de dados MongoDB através de uma URL de conexão específica.

Configuração do Mongo Express (docker-compose)

services: 
  mongo-express: 
    image: mongo-express 
    ports: 
      - "8081:8081" # Expondo a porta para acesso via navegador 
    environment: 
    ME_CONFIG_MONGODB_URL: mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017/${MONGO_INITDB_DATABASE}?authSource=admin # URL de conexão com o MongoDB 
    ME_CONFIG_BASICAUTH_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} # Usuário de autenticação básica 
    ME_CONFIG_BASICAUTH_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} # Senha de autenticação básica
  • Imagem: A imagem Docker utilizada é a oficial do Mongo Express (mongo-express).
  • Portas: A interface do Mongo Express estará disponível na porta 8081.
  • Variáveis de Ambiente:

    • ME_CONFIG_MONGODB_URL: A URL de conexão com o banco MongoDB, que inclui o usuário e a senha definidos no MongoDB, o nome do banco e o endereço do serviço de banco de dados.

    • ME_CONFIG_BASICAUTH_USERNAME e ME_CONFIG_BASICAUTH_PASSWORD: Configurações de autenticação básica para acessar o Mongo Express. O nome de usuário e a senha são os mesmos definidos para o MongoDB.

Explicação da URL de Conexão

A URL de conexão mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017/${MONGO_INITDB_DATABASE}?authSource=admin segue a seguinte estrutura:

  • mongodb://: Protocolo de conexão com o MongoDB.

  • ${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}: As credenciais de acesso (usuário e senha) que são lidas a partir das variáveis de ambiente definidas.

  • @mongo:27017: Nome do serviço Docker onde o MongoDB está rodando, seguido pela porta padrão (27017).

  • /${MONGO_INITDB_DATABASE}: Nome do banco de dados que será acessado.

  • ?authSource=admin: Especifica o banco de dados de autenticação (admin).


Exemplo:  mongodb://root:admin123@eclipse-db:27017/eclipse?authSource=admin

Estrutura de Funcionamento do Mongo

Para as configurações do Mongo e seus modelos, são essas as patas importantes:

/api/
├── src/
    ├── config/ # Configurações da CONNECTION STRING
    │   ├── connectDb.ts
    ├── model/ # Modelos de todas as entidades
    │   ├── avaliacao
    │   ├── otp
    │   ├── peca
    │   ├── recurso
    │   ├── triagem
    │   ├── usuario
    ├── app.tsx # Criação do primerio Corregedor acontece aqui