O projeto tem como objetivo aplicar os conhecimentos adquiridos sobre o MongoDB, utilizando operadores simples e complexos para alterar documentos, além de construir queries e expressões complexas com índices textuais e expressões regulares.
O projeto consiste em trabalhar com um conjunto de dados do cardápio do McDonald's, incluindo ingredientes, valores nutricionais e dados fictícios de vendas. O objetivo é aplicar os conceitos aprendidos no módulo de MongoDB para realizar operações de alteração nos documentos do banco de dados.
- Pesquisar documentos no banco de dados
- Especificar os dados retornados do documento
- Filtrar resultado das pesquisas, usando operadores lógicos e de comparação
- Limitar, pular, ordenar os documentos retornados, com os métodos
- Utilizar operadores de consulta em array
- Fazer atualizações nos documentos utilizando os operadores
- Renomear campos
- Incorporar dados aos documentos através de arrays
- MongoDB
- DataScience
- Queries
- Node.js
- JavaScript
Para executar o projeto localmente, siga as instruções abaixo:
Faça o clone do repositório do projeto
git clone git@github.com:brenolg/Commerce-MongoDB.git
Instale as dependências do projeto
npm install
Certifique-se de ter o MongoDB instalado em sua máquina. Caso não tenha, siga as instruções de instalação na documentação oficial do MongoDB.
Inicie o servidor MongoDB localmente
docker run -d --name=nomeDoContainer -v "$PWD:/app" -p 27017:27017 mongo:5.0
Execute o projeto
docker exec -it nomeDoContainer bash
Dentro do container, no diretório /app, execute o seguinte comando para restaurar a base de dados commerce
DBNAME=commerce ./scripts/resetdb.sh assets/produtos
- A execução desse script criará um banco de dados chamado commerce e importará os dados para a coleção produtos.
- Execute as queries como desejar.
- As queries estão nos arquivos desafio{x}.js
- Retorne a quantidade de documentos inseridos na coleção produtos
- Ordene a coleção produtos pela quantidade de lanches vendidos em ordem crescente, mostrando apenas o nome e a quantidade de lanches vendidos
- Retorne o lanche mais vendido, mostrando apenas o nome e a quantidade do lanche mais vendido
- Retorne os lanches que tiveram vendas maiores que 50 e menores que 100, mostrando apenas o nome e a quantidade de lanches vendidos em ordem crescente
- Retorne o nome, as curtidas e vendidos dos lanches que tiveram quantidade de curtidas igual a 36 ou tenham a quantidade de vendas igual a 85
- Retorne o nome e as curtidas dos lanches que tiveram curtidas maiores que 10 e menores que 100
- Retorne o nome e vendidos dos lanches que tenham sido vendidos com uma quantidade diferente de 50 e em que o campo tags não exista
- Delete os lanches com menos de 50 curtidas e retorne o nome dos lanches que restaram no banco
- Retorne o nome de todos os lanches que possuam calorias abaixo de 500
- Retorne o nome de todos os lanches que tenham o percentual de proteínas maior ou igual a 30 e menor ou igual a 40
- Retorne o nome do produto, a quantidade de curtidas e quantos itens foram vendidos dos produtos que não sejam iguais a Big Mac e McChicken
- Adicione ketchup aos ingredientes para todos os sanduíches menos o McChicken, garantindo que não haja duplicidade nos ingredientes
- Inclua o campo criadoPor em todos os documentos, colocando Ronald McDonald no valor desse campo
- Crie uma query que retorne todos os lanches que possuem picles em seus ingredientes e mostre apenas os 3 primeiros itens contidos no array valoresNutricionais
- Adicione o campo avaliacao em todos os documentos da coleção e efetue alterações nesse campo
- Adicione o campo ultimaModificacao com a data corrente somente no sanduíche Big Mac
- Retorne a quantidade total de produtos em uma nova coleção chamada resumoProdutos
- Inclua bacon no final da lista de ingredientes dos sanduíches Big Mac e Quarteirão com Queijo
- Remova o item cebola de todos os sanduíches
- Remova o primeiro ingrediente do sanduíche Quarteirão com Queijo
- Remova o último ingrediente do sanduíche Cheddar McMelt
- Adicione a quantidade de vendas dos sanduíches por dia da semana
- Insira os valores combo e tasty no array tags de todos os sanduíches e aproveite para deixar os valores em ordem alfabética ascendente (A a Z)
- Ordene em todos os documentos os valores do array valoresNutricionais pelo campo percentual de forma decrescente
- Adicione o valor muito sódio ao final do array tags nos produtos em que o percentual de sódio seja maior ou igual a 40
- Adicione o valor contém sódio ao final do array tags nos produtos em que o percentual de sódio seja maior do que 20 e menor do que 40
- Conte quantos produtos contém Mc no nome, sem considerar letras maiúsculas ou minúsculas
- Conte quantos produtos têm 4 ingredientes
- Renomeie o campo descricao para descricaoSite em todos os documentos
- Remova o campo curtidas do item Big Mac
- Retorne o nome dos sanduíches em que o número de curtidas é maior que o número de sanduíches vendidos
- Retorne o nome e a quantidade de vendas (vendidos) dos sanduíches em que o número de vendas é múltiplo de 5
Agradecemos a todos os colaboradores e contribuidores por seu apoio e participação no desenvolvimento deste repositório. A aplicação dos conhecimentos sobre o MongoDB de forma prática é fundamental para o aprendizado e aprimoramento das habilidades de desenvolvimento.