DEV Community

Júlia Vaz
Júlia Vaz

Posted on • Updated on • Originally published at dev.to

Introdução ao MongoDB e operações de CRUD

Estarei usando esse site como registro dos meus estudos, a intensão é totalmente fixar o conteúdo aprendido!

Primeira coisa que tem que entender sobre o MongoDB é o conceito, entender a lógica de um banco de dados não relacional.

A Documentação do MongoDB é incrível, eu consegui entender super bem por lá, precisando ver pequenas coisas por fora.

Se você é como eu, que tem o conceito de banco de dados relacional muito fixo e não entendeu de primeira a maneira na qual o não relacional funciona recomendo ver essa parte da documentação do MongoDB, Comparação com SQL.

✨ Características:

  • Os dados são organizados em funções;
  • Documento definido por um objeto, tendo o formato de campo:valor;
  • Não existe tabelas, sim collections;
  • As collections não tem contains (PK, FK), transações e também não tem as limitações das tabelas relacionais;
  • Composto por documentos, esses documentos são em formato JSON;
  • Os documentos são agrupados em collections;
  • O conjunto de collections formam um database;
  • Collection é um conjunto de dados;

Fluxo de acesso

Para visualizar todos os documentos existentes.

Comando : > show databases

Para colocar em uso caso exista, senão, ele é automaticamente criado.

Comando: > use estudos

OBS.: a collection só oficialmente criada após a inserção de um registro

Para visualizar as collections.

Comando: > show collections

Para visualizar em qual documento você está.

Comando: > db

Operações de CRUD

São funções que fazem as operações, como por exemplo: insert(), find(), findOne(), update() e delete();

Create

> use <nome-collection>

  • Esse comando serve para criar o banco, mas só será oficialmente criado com a inserção do primeiro registro.

Read

  • Esse comando serve para visualizar os registros da sua collection (apenas os 20 primeiros).
    Comando: > db.<nome-collection>.find()

  • Visualizar em formato JSON.
    Comando: > db.<nome-collection>.find().pretty();

  • Ver um registro em específico.
    Comando: > db.<nome-collection>.find({ <nome-campo> : <valor> })
    Pode-se usar o parâmetro pretty() sempre que quiser ver em formato JSON.

Insert

  • Adicionar um único registro em sua collection definida:
    Comando: > db.<nome-collection>.insert({ campo:valor })

  • Há duas opções de como adicionar vários registros em sua collection definida:

1ª opção: Usando um array para inserir os registros, logo em seguida adicionar o array no parâmetro insert:
Comando:
> addArray = [ { campo:valor}, { campo:valor}, {campo:valor}, { campo: [ {campo:valor }, {campo:valor } ] } ]
> db.<nome-collection>.insert(addArray)

2ª opção: Usar a função insertMany():
Comando: db.<nome-collection>.insertMany([ { campo:valor, campo:valor, campo:valor }, { campo:valor, campo:valor, campo:valor } ] )

Update

Importante lembrar que, a função update pode ser muito perigosa, podendo apagar registros de seu documento, então atente-se as regras de "segurança".

  • Atualizando um único registro em sua collection definida, usando o _id como filtro, pois é um registro único:
    Comando: > db.<nome-collection>.updateOne({ _id: ObjectId("5eeed2755cda39dc20cb990c")}, {$set: {campo:valor}})

  • O operador $set irá sobrescrevê-lo, sendo atualizado.

  • Existem outras funções de update como, update(), updateMany() e upsert().

OBS.:
- Cada ObjectId() é diferente então para encontrar o seu use o comando > db.<nome-collection>.find();
- Se for atualizar um campo que não existe ele será automaticamente criado.

Delete

Seguindo a lógica das funções do update(), temos duas opções de como deletar um registro, usando deleteOne() ou deleteMany().

  • Para apagar todos os registros com um campo especifico: > db.<nome-collection>.deleteOne({campo:valor})

Caso queira deletar um registro em especifico não se esqueça de utilizar o ObjectId().

Fim! :D

Top comments (0)