---
Neste projeto, verificamos se você é capaz de:
-
Utilizar o método
updateOne()eupdateMany() -
Utilizar os operadores
$set,$mul,$inc,$min,$maxe$currentDate -
Renomear campos e remover campos
-
Incorporar dados aos documentos através de arrays
-
Utilizar os operadores
$pop,$pulle$push -
Utilizar o operador
$addToSet -
Utilizar os operadores
$each,$slicee$sort -
Utilizar o operador
$allpara filtrar documentos -
Utilizar o operador
$elemMatchpara filtrar documentos -
Utilizar o operador
$sizepara filtrar documentos pelo tamanho de arrays -
Utilizar o operador
$exprpara criar expressões de agregação -
Utilizar expressões regulares e o operador
$regexpara buscar documentos -
Utilizar o índice textual e o operador
$text -
Utilizar o operador
$mod
1 - Inclua o campo criadoPor em todos os documentos, colocando "Ronald McDonald" no valor desse campo.
Para isso, escreva no arquivo desafio1.js duas queries, nesta ordem:
-
Crie uma query que adicione o campo
criadoPorem todos os documentos, colocando"Ronald McDonald"no valor desse campo. -
Crie uma query que retorne o
nomeecriadoPorde todos os produtos.
2 - Inclua o campo valorUnitario em todos os documentos em que esse campo não existe e atribua a ele o valor "0.00", com o tipo NumberDecimal.
Para isso, escreva no arquivo desafio2.js duas queries, nesta ordem:
-
Crie uma query que adicione o campo
valorUnitarioem todos os documentos em que esse campo não existe e atribua a ele o valor"0.00", com o tipoNumberDecimal. -
Crie uma query que retorne o
nomeevalorUnitariode todos os produtos.
Para isso, escreva no arquivo desafio3.js quatro queries, nesta ordem:
-
Crie uma query que inclua o campo
avaliacaodo tipoNumberInte com o valor0em todos os documentos da coleção. -
Crie uma query que incremente o valor do campo
avaliacaoem5em todos os sanduíches de carne do tipobovino. Dica: utilize como filtro o campotags. -
Crie uma query que incremente o valor do campo
avaliacaoem3em todos os sanduíches deave. -
Crie uma query que retorne o
nomeeavaliacaode todos os sanduíches.
Para isso, escreva no arquivo desafio4.js duas queries, nesta ordem:
-
Crie uma query que atribua a data corrente ao campo
ultimaModificacaono sanduícheBig Mac. Para a data corrente faça uso do tipoDate. -
Crie uma query que retorne o
nomede todos os documentos em que o campoultimaModificacaoexiste.
5 - Adicione ketchup aos ingredientes para todos os sanduíches menos o McChicken, garantindo que não haja duplicidade nos ingredientes.
Para isso, escreva no arquivo desafio5.js duas queries, nesta ordem:
-
Crie uma query que adicione
ketchupaosingredientespara todos os sanduíches menos oMcChicken, garantindo que não haja duplicidade nosingredientes. -
Crie uma query que retorne o
nomeeingredientesde todos os documentos.
Para isso, escreva no arquivo desafio6.js duas queries, nesta ordem:
-
Crie uma query que faça a inclusão de
baconno final da lista deingredientesdos sanduíchesBig MaceQuarteirão com Queijo. -
Crie uma query que retorne o
nomeeingredientesde todos os documentos.
Para isso, escreva no arquivo desafio7.js duas queries, nesta ordem:
-
Crie uma query que faça a remoção do item
cebolaem todos os sanduíches. -
Crie uma query que retorne o
nomeeingredientesde todos os documentos.
Para isso, escreva no arquivo desafio8.js duas queries, nesta ordem:
-
Crie uma query que faça a remoção do primeiro
ingredienteno sanduícheQuarteirão com Queijo. -
Crie uma query que retorne o
nomeeingredientesde todos os documentos.
Para isso, escreva no arquivo desafio9.js duas queries, nesta ordem:
-
Crie uma query que faça a remoção do último
ingredienteno sanduícheCheddar McMelt. -
Crie uma query que retorne o
nomeeingredientesde todos os documentos.
Para isso, escreva no arquivo desafio10.js quatro queries, nesta ordem:
- Crie uma query que inclua um array com sete posições em todos os sanduíches. Cada uma delas representará um dia da semana, e cada posição iniciará em
0. O array deve se parecer como abaixo:"vendasPorDia": [0, 0, 0, 0, 0, 0, 0]
- O primeiro item desse array representa as vendas no domingo, o segundo item representa as vendas na segunda-feira, e assim até chegar ao último item, que representa as vendas no sábado.
-
Crie uma query que incremente as vendas de
Big Macàs quartas-feiras em60. -
Crie uma query que incremente as vendas de todos os sanduíches de carne do tipo
bovinoepãoaos sábados em120. -
Crie uma query que retorne o
nomeevendasPorDiade todos os documentos.
11 - Insira os elementos combo e tasty no array tags de todos os sanduíches e aproveite para deixar os elementos em ordem alfabética ascendente.
Para isso, escreva no arquivo desafio11.js duas queries, nesta ordem:
-
Crie uma query que faça tanto a inserção dos elementos
comboetastyno arraytagsde todos os sanduíches quanto a ordenação dos elementos detagsem ordem alfabética ascendente. -
Crie uma query que retorne o
nomeetagsde todos os documentos.
12 - Ordene em todos os documentos os elementos do array valoresNutricionais pelo campo percentual de forma descendente.
Para isso, escreva no arquivo desafio12.js duas queries, nesta ordem:
-
Crie uma query que faça em todos os documentos a ordenação dos elementos do array
valoresNutricionaispelo campopercentualde forma descendente. Dica: mesmo sem adicionar nenhum novo elemento, para essa operação é necessário utilizar também o modificador$each. -
Crie uma query que retorne o
nomeevaloresNutricionaisde todos os documentos.
13 - Adicione o elemento muito sódio ao final do array tags nos produtos em que o percentual de sódio seja maior ou igual a 40.
Para isso, escreva no arquivo desafio13.js duas queries, nesta ordem:
-
Crie uma query que faça a adição do elemento
muito sódioao final do arraytagsnos produtos em que opercentualdesódioseja maior ou igual a40. -
Crie uma query que retorne o
nomeetagsde todos os documentos.
14 - Adicione o elemento 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.
Para isso, escreva no arquivo desafio14.js duas queries, nesta ordem:
-
Crie uma query que faça a adição do elemento
contém sódioao final do arraytagsnos produtos em que opercentualdesódioseja maior do que20e menor do que40. -
Crie uma query que retorne o
nomeetagsde todos os documentos.
Para isso, escreva no arquivo desafio17.js duas queries, nesta ordem:
-
Crie uma query que faça a criação de um índice do tipo
textno campodescricaocom o idioma padrãoportuguese. -
Crie uma query que retorne a quantidade de documentos que contêm as palavras
frangoehamburguerutilizando o operador$text.
Para isso, escreva no arquivo desafio18.js duas queries, nesta ordem:
-
Crie uma query que faça a criação de um índice do tipo
textno campodescricaocom o idioma padrãoportuguese. -
Crie uma query que retorne a quantidade de documentos que contêm a expressão
feito comutilizando o operador$text.
Para isso, escreva no arquivo desafio19.js duas queries, nesta ordem:
-
Crie uma query que faça a renomeação do campo
descricaoparadescricaoSiteem todos os documentos. -
Crie uma query que retorne o
nome,descricaoedescricaoSitede todos os documentos.
Para isso, escreva no arquivo desafio20.js duas queries, nesta ordem:
-
Crie uma query que faça a remoção do campo
curtidasdo itemBig Mac. -
Crie uma query que retorne o
nomeecurtidasde todos os documentos.
