DEV Community

Júlia Vaz
Júlia Vaz

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

2 1

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

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay