0% acharam este documento útil (0 voto)
3 visualizações8 páginas

CRUD no MongoDB para Plataforma de Cursos

Um passo a passo para você utilizar o CRUD no NoSQL

Enviado por

camilaqmpchaves
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
3 visualizações8 páginas

CRUD no MongoDB para Plataforma de Cursos

Um passo a passo para você utilizar o CRUD no NoSQL

Enviado por

camilaqmpchaves
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Implementação do CRUD no NoSQL

Vamos implementar um banco de dados utilizando o MongoDB.

O banco de dados será de uma plataforma de cursos online e deverá utilizar as seguintes informações:

 Curso: Título, descrição, categoria, carga horária e instrutor responsável.


 Aluno: Nome, email, cursos inscritos, progresso.
 Instrutor: Nome, especialidade, cursos ministrados, avaliação média.
 Inscrição: Registro de inscrição, data de inscrição e status.

CREATE
Começaremos a aprender a implementar o C do CRUD, ou seja, o ‘Create’, e utilizaremos ele para criar as quatro tabelas
que vamos utilizar no decorrer do banco.

Você cria uma tabela e já acrescenta os campos delas com as informações em apenas um código:

- Utilizamos o ‘insert’ para inserir ‘one’ uma informação, depois acrescenta a categoria e entre aspas o que é escrito, e
se for número, não precisa de aspas.

Ex. Criação da tabela curso:

[Link]({_id:1, titulo:"Psicologia", descricao:"Curso de compreensão do comportamento humano", categoria:


"Humanas", carga_horaria: "4h", instrutor_responsavel:"Agatha Christie"})

Ex. Criação da tabela aluno:

[Link]({_id: 1, nome: "Mayla", email: "maylalinda@[Link]", curso: "Biologia", progresso: "70%"})

Ex. Criação da tabela instrutor:

[Link]({_id: 1, nome: "Agatha Christie", especialidade: "Humanas", curso: "Psicologia", avaliacao: "10"})

Ex. Criação da tabela inscrição:

[Link]({_id: 1, registro_inscricao: 001, nome_aluno: "Mayla", curso: "Biologia", data_inscricao:"01-10-


2024", status: "ativo"}
Implementação do CRUD no NoSQL

READ
O read é utilizado para ler o código, assim como diz a tradução da palavra, demonstrando assim o que estamos
pedindo através do ‘find’.

 Agora vamos consultar detalhes de um curso específico, que inclua o aluno inscrito e o instrutor responsável:

Para realizarmos a pesquisa utilizamos o ‘find’, e o ‘pretty’ para exibir o código de uma forma mais bonita.

Código utilizado:
cursosonline> [Link]({titulo: "Biologia"}).pretty()
[
{
_id: 5,
titulo: 'Biologia',
descricao: 'Curso para compreender a natureza, humanidade e animalia',
categoria: 'Biologicas',
carga_horaria: '5h',
instrutor_responsavel: 'Luna Maya'
}
]

Segue imagem:
Implementação do CRUD no NoSQL

 Exibir a lista de alunos inscritos em determinado curso.

Para exibirmos uma informação, vamos selecionar a collection que contém o dado, no caso exemplo foi a ‘aluno’, e
pesquisamos na tabela ‘curso’, o curso específico que queremos os alunos inscritos.

[Link]({curso: "Biologia"}).pretty()
[
{
_id: 1,
nome: 'Mayla',
email: 'maylalinda@[Link]',
curso: 'Biologia',
progresso: '70%'
},
{
_id: 2,
nome: 'Nala',
email: 'nala@[Link]',
curso: 'Biologia',
progresso: '60%'
},
{
_id: 8,
nome: 'Gean',
email: 'gean@[Link]',
curso: 'Biologia',
progresso: '90%'
}
]
Implementação do CRUD no NoSQL

 Consultar todos os cursos em que um aluno específico está inscrito e seu progresso em cada um.

Utilizamos a collection inscrição, que tem as informações de progresso e curso, e pesquisamos a tabela
‘nome_aluno’, e selecionamos um aluno específico, no caso do exemplo foi o “Gabriel”.

Código Ex:
[Link]({nome_aluno: "Gabriel"}).pretty()
[
{
_id: 19,
registro_inscricao: 19,
nome_aluno: 'Gabriel',
curso: 'Desenvolvimento de Sistemas',
data_inscricao: '20-10-2024',
status: 'ativo'
},
{
_id: 21,
registro_inscricao: 17,
nome_aluno: 'Gabriel',
curso: 'Historia',
data_inscricao: '12-11-2024',
Implementação do CRUD no NoSQL

status: 'ativo'
}
]

 Obter detalhes de um instrutor, incluindo cursos ministrados e avaliação média.

Utilizamos os mesmos métodos de leitura dos outros exemplos e assim conseguimos as informações sobre o instrutor!
[Link]({nome: "Lucca Well"}).pretty()
[
{
_id: 4,
nome: 'Lucca Well',
especialidade: 'Biologicas',
curso: 'Medicina',
avaliacao: '3'
}
]
Implementação do CRUD no NoSQL

UPDATE:
Nessa parte do CRUD faremos a atualização de alguns dados previamente cadastrados em nosso banco de dados

 Atualizar informações do curso, como carga horária ou descrição.

Para atualizar informações já cadastradas, utilizamos o ‘update’ e o ‘one’ no caso de alterar somente uma por vez. O
comando $set indica que o campo carga_horaria no documento será atualizado ou, caso não exista, será criado com o
valor "10h". Como está registrado no exemplo a seguir.

Código Ex:
[Link]({_id: 7},{$set: {carga_horaria: "10h"}})
{
acknowledged: true,
insertedId: null,
matchedCount: 1,
modifiedCount: 1,
upsertedCount: 0
}

 Atualizar dados de contato de um aluno.

Para atualizar o contato do aluno farei conforme expliquei no exemplo anterior. Uma dica que não citei antes, para
sabermos que deu certo basta conferir o matchedCount e o modifiedCount, e se a acknowledged está como true. Isso
são indicativos que funcionou!
[Link]({_id: 17},{$set: {email: "cami_queen@[Link]"}})
{
acknowledged: true,
insertedId: null,
matchedCount: 1,
modifiedCount: 1,
upsertedCount: 0
}
Implementação do CRUD no NoSQL

 Alterar o progresso de um aluno em um curso (percentual concluído).

Atualizaremos o percentual da mesma forma que alteramos os outros dados:

[Link]({_id: 15},{$set: {progresso: “70%”}})


{
acknowledged: true,
insertedId: null,
matchedCount: 1,
modifiedCount: 1,
upsertedCount: 0
}

DELETE:
O delete é como deletamos algo que não queríamos em nosso banco ou até mesmo o próprio banco de dados.
Essa é uma alteração sem retorno e com perda de dados!

 Remover um curso do catálogo (se nenhum aluno estiver inscrito).

Utilizamos o ‘delete’ para apagar e o ‘one’ para que seja somente um. Nesse exemplo usei o id para excluir o curso que
selecionei.
[Link]({_id:8})
{ acknowledged: true, deletedCount: 1 }
Implementação do CRUD no NoSQL

 Excluir alunos inativos (sem participação por mais de um ano).

Nesse exemplo usamos o ‘Many’ para que possa ser excluído mais de um aluno, caso seja inativo. No meu exemplo, não
fiz nenhum aluno inativo e por isso no ‘deletedCount’ aparece o número 0.

[Link]({progresso:"0%"})

{ acknowledged: true, deletedCount: 0 }

 Remover instrutores que não ministram mais cursos.

Esse último exemplo eu acabei também não registrando nenhum instrutor que não ministrasse um curso, e por isso o
deletedCount segue como 0. *Caso tivesse um ou mais, apareceria um número.

[Link]({curso:"nenhum"})

{ acknowledged: true, deletedCount: 0 }

Você também pode gostar