Comandos Essenciais de MongoDB: Atualização e Consultas Avançadas

Classificado em Ciências Sociais

Escrito em em português com um tamanho de 5,81 KB

Atualização de Documentos (Update)

9. Atualizar Omelete: Adicionar Opcionais

Encontre o documento com a receita da omelete e, usando o _id deste documento, altere-o acrescentando os opcionais salsinha e cenoura ralada.

db.receitas.find({"Título": "Omelete"})

db.receitas.update({_id: XXXXX}, {$set: {"opcionais": ['orégano', 'queijo ralado', 'páprica', 'tomates picados', 'Salsinha', 'Cenoura Ralada']}})

10. Adicionar Assinatura do Chef a Todas as Receitas

Acrescente em todas as receitas o campo Assinatura seguido do nome do chef (seu nome).

db.receitas.update({}, {$set: {"Assinatura": "XXX"}}, {multi: 1})

11. Upsert: Ovos Beneditinos

Tente alterar a receita Ovos Beneditinos, acrescentando 3 ovos, 4 tiras de bacon frito e vinagre a gosto. Caso a receita não exista, deve ser acrescentada à coleção (use o campo Itens ao registrar os ovos, em vez de Item).

db.receitas.update({"Título": "Ovos Beneditinos"}, {$set: {"Itens": "Ovo", "Quantidade": 3, "Bacon frito": "4 tiras", "Vinagre": "a gosto"}}, {upsert: 1})

12. Modificar Ovos Beneditinos (Adicionar, Renomear e Remover Campos)

Inclua na receita Ovos Beneditinos 1 pão bola, remova o campo que indica vinagre a gosto e mude o nome do campo Itens para Item.

  1. Adicionar 'Pão bola':

    db.receitas.update({"Título": "Ovos Beneditinos"}, {$set: {"Pão bola": 1}})

  2. Renomear 'Itens' para 'Item':

    db.receitas.update({"Título": "Ovos Beneditinos"}, {$rename: {"Itens": "Item"}})

  3. Remover 'Vinagre':

    db.receitas.update({"Título": "Ovos Beneditinos"}, {$unset: {"Vinagre": 1}})

Validação de Esquema (Schema Validation)

16. Validar e Modificar Regras na Coleção 'receitas'

Ainda usando a coleção de receitas, valide a existência dos campos Título e Item. Depois, modifique a validação do campo Item.

A. Validar Título e Item:

db.runCommand({collMod: "receitas", validator: {"Título": {$exists: true}, "Item": {$exists: true}}})

B. Modificar Validação do Item:

db.runCommand({collMod: "receitas", validator: {"Item": {$exists: false}}})

Importação e Consultas Específicas (Mega Sena)

17. Importar Dados CSV para a Coleção 'resultados'

Importe o arquivo megasena.csv para a base de dados megasena, na coleção resultados.

mongoimport -v --host localhost:27017 -d megasena -c resultados --file C:\...\MegasenaOkVirg.csv --type csv --headerline

18. Consultar Concursos com Múltiplos Ganhadores

Retorne os concursos que tiveram mais de um ganhador.

19. Consultar Dezenas por Intervalo

Retorne os concursos em que a primeira dezena foi maior do que 20 e a quarta dezena foi menor do que 30.

db.resultados.find({"1a Dezena": {$gt: 20}, "4a Dezena": {$lt: 30}})

20. Consultar Dezenas Usando $or

Mostre os concursos em que a terceira dezena teve valor 34 ou 18, e a quinta dezena era maior do que 20.

db.resultados.find({"5a Dezena": {$gt: 20}, $or: [{"4a Dezena": 34}, {"4a Dezena": 18}]})

Consultas Avançadas e Expressões Regulares (Receitas)

21. Busca por Regex e Ordenação Múltipla

Mostre todas as receitas com títulos que contenham a letra 'o', ordenando pelo Título em ordem crescente e pelo Item em ordem decrescente.

db.receitas.find({"Título": /o/}).sort({Título: 1, Item: -1})

22. Busca por Regex de Final de String ($)

Retorne as receitas que contenham Açúcar, cuja medida acabe com a palavra 'sopa' (ex: 5 colheres de sopa), e que tenham sal com medida terminada em 'pitada' (ex: 1 pitada).

db.receitas.find({"Item": "Açúcar", "Medida": /sopa$/, "sal": /pitada$/})

23. Busca por Regex de Início de String (^) e Ordenação

Liste as receitas cujo modo de preparar comece com 'misture', ordenando pelo Título da receita em ordem decrescente.

db.receitas.find({"Modo de preparar": /^misture/i}).sort({Título: -1})

24. Busca Combinada ($or) e Regex

Faça a consulta que mostra as receitas com Título que contenha a letra 'i', ou que tenham Item começado com 'O', em ordem crescente de título.

db.receitas.find({$or: [{"Título": /i/i}, {"Item": /^O/}]}).sort({Título: 1})

25. Listar Títulos Distintos (Distinct)

Mostre apenas os diferentes títulos de receitas cadastradas no cardápio, sem repetições.

db.receitas.distinct("Título")

26. Busca por Múltiplos Valores ($in)

Retorne as receitas de Crepeoca, Miojo e Omelete.

db.receitas.find({"Título": {$in: ['Crepeoca', 'Miojo', 'Omelete']}})

27. Excluir Itens ($nin)

Liste todas as receitas que não levam os itens Miojo ou sal.

db.receitas.find({"Item": {$nin: ["Miojo", "sal"]}})

28. Paginação: Pular Resultados (Skip)

Salte as 3 primeiras receitas e mostre todas as outras disponíveis no cardápio.

db.receitas.find().skip(3)

Entradas relacionadas: