Todos os scripts foram feitos para rodarem dentro do terminal mongosh configurado para um self-host. Talvez seja necessário fazer alguns ajustes para rodar em servidores remotos.
Apenas um adendo relacionado a nomenclatura dada aos scripts: Eu sei que não é uma boa prática nomear os scripts da forma em que eu fiz, mas foi a maneira ao qual eu achei para que a ordem dos scripts ficassem na mesma ordem ao qual foi pedido ao trabalho.
Criar e manipular um banco de dados não relacional no MongoDB.
Criar um banco de dados no MongoDB Compass, inserir e atualizar documentos em uma collection.
Nesta atividade você deverá criar um banco de dados no MongoDB Compass chamado de “lojadb”. Ele será utilizado no contexto de uma loja, onde você deverá cadastrar documentos referentes a vendas efetuadas pela loja.
- Crie o banco de dados, e em seguida realize a criação de uma collection “vendas”.
- Agora insira os seguintes dados conforme o conhecimento adquirido nas aulas, utilizando o comando “insert” pela Shell do mongodb, ou graficamente pelo Compass:
- Inicialmente, vamos inserir apenas os dados básicos dos clientes que realizaram compras na loja. Para isso, utilize as informações na tabela a seguir. Note que o campo telefone deverá ser adicionado como uma Array.
NOME | CLIENTE VIP (1 - SIM / 0 - NÃO) |
TELEFONE | |
---|---|---|---|
João | 1 | joao@email.com | 9999-1111, 8888-1111 |
Marcos | 0 | 9999-2222 | |
Maria | 1 | maria@email.com | 9999-3333, 8888-3333, 9988-3000 |
(Note que como estamos falando de um banco de dados não relacional, nós não temos uma estrutura definida. Então cada cliente não precisa necessariamente ter os mesmos campos. Por exemplo, o cliente Marcos não tem e-mail, portanto o campo e-mail não precisa ser adicionado em sua entrada. Além disso, veja que os três clientes têm quantidades diferentes de telefones.) |
Vamos continuar o processo de inserção de dados que iniciamos na etapa anterior. Para isso, você terá de ATUALIZAR documentos já presentes na collection.
- Vamos adicionar o endereço de cada cliente conforme a tabela a seguir. O endereço deverá ser inserido como um campo do tipo Objeto, separando dentro dele a rua, número, complemento, cidade e estado.
NOME | ENDEREÇO |
---|---|
João | Rua Um, 1000, Apto 1 Bloco 1. São Paulo/SP |
Marcos | Rua Dois, 4000. Campinas/SP |
Maria | Rua Três, 3000. Londrina/PR |
- Por fim, vamos adicionar os dados das compras efetuadas por cada cliente. Os dados das compras deverão ser adicionados nos mesmos documentos com as informações dos clientes. Um outro detalhe é que agora você irá utilizar o conceito de Arrays de Objetos no campo “compras”.
NOME | COMPRAS |
---|---|
João | Nome do produto: notebook Preço: R$ 5000,00 Quantidade: 1 |
Marcos | Nome do produto: Caderno Preço: R$ 20,00 Quantidade: 1 Nome do produto: Caneta Preço: R$ 3,00 Quantidade: 5 Nome do produto: Borracha Preço: R$ 2,00 Quantidade: 2 |
Maria | Nome do produto: Tablet Preço: R$ 2500,00 Quantidade: 1 Nome do produto: Capa para tablet Preço: R$ 50,00 Quantidade: 1 |
Realizar pesquisas e consultas em um banco de dados não relacional (MongoDB)
- Realize uma consulta que retorne todos os documentos da collection.
- Realize uma consulta que localize as informações da cliente “Maria”.
- Realize uma busca que retorna os clientes VIPs da loja (VIP = 1). Retorne apenas o campo “nome” de cada um.
- Realize uma consulta que exiba as compras efetuadas por “Marcos”.
- Realize uma consulta que retorne todos os nomes de produtos comprados por todos os clientes. Nesta consulta em específico, utilize a linha de comando do MongoDB.
É esperado que ao término da prática o aluno saiba desenvolver bancos de dados não relacionais orientados a documentos utilizando o MongoDB, incluindo a criação de collections e inserção/atualização de documentos, bem como a realização de consultas à base de dados.