material-de-estudos

Operações no MongoDB

Sumário

Criando um Banco de Dados e uma Collection

Tecnicamente não existe um comando pré-definido de “criação” de banco de dados. Para essa operação usa-se o comando use <db_name>, no qual é alterado o banco de dados que está sendo usado atualmente. Por exemplo:

use viagens_db

Para criar uma collection usa-se o comando db.createCollection("collection_name")

db.createCollection("usuarios")

Inserção de documentos

Para a inserção de documentos dentro de uma collection usa-se o comando db.nome_collection.insertOne({}), para a inserção de vários documentos usa-se o comando db.nome_collection.insertMany([{}]). Por exemplo:

db.usuarios.insertOne({
  "name": "John Doe",
  "email": "john@email.com"
})

É criado então dentro do MongoDB o seguinte documento:

{
  "_id": {
    "$oid": "65809e7556ad0a7b69b0ad6b" // ObjectId
  },
  "name": "John Doe",
  "email": "john@email.com"
}

Para a inserção de vários documentos utiliza-se o comando insertMany em vez do insertOne, no qual é passado como um parâmetro um array de vários documentos


db.usuarios.insertMany([
  {
    "name": "John Doe",
    "email": "john@email.com"
  },
  {
  "name": "Jane Doe",
  "email": "jane@email.com"
  }
]);

Consulta de documentos

A documentação do MongoDB disponibiliza vários bancos de dados para serem testados livremente, clique aqui para abrir o link da documentação. As consultas abaixo serão aplicadas nesse banco de dados

É possível utilizar os seguintes comandos do MongoDB para fazer a consulta de documentos, dentro das chaves é inserido os parâmetros de consulta do MongoDB:

# Procurar por todos os filmes lançados
db.movies.find({})

Consulta simples de igualdade

Para fazer uma consulta baseada em um valor definido para um campo basta definir o campo e o valor que se deseja. Por exemplo:

# Procurar por filme que o título seja "City of God"
db.movies.find({ title: 'City of God' })

Operadores de Comparação de consultas

Para fazer consultas que compara determinados valores aos documentos, utiliza-se operadores de comparação:

Por exemplo:

# definir o banco de dados que será utilizado
use sample_mflix

# retornar todos os filmes que têm o idioma "Português", a data dde lançamento seja 2003 ou 2004 e
# que foi seja um filme brasileiro (veja a imagem do resultado abaixo)
db.movies.find({
  languages: "Portuguese",
  year: {$in: [2003, 2004]},
  countries: {$eq: "Brazil"}
})

Imagem da query executada

Operadores Lógicos de consultas

Para fazer consultas filtrando através de condições definidas, é utilizado operadores lógicos:

Definindo os campos da consulta (Projeção)

Para definir os campos que devem ser retornados na consulta usa-se a projeção. Por exemplo:

# o projection é o segundo parâmetro do find
# pode ser utilizado 1 ou true
db.movies.find({}, {title: true, released: true, plot: true, poster: true, imdb: true})

Ordenação de documentos

Para definir a ordenação dos documentos de uma consulta usa-se

Paginação e Limitação de resultados

Para limitar o número de documentos retornados usa-se o método limit(). Por exemplo:

db.movies.find({}).limit(5)

Para retornar documentos com base em páginas (de 10 em 10 por exemplo) usa-se os métodos skip() e limit(). Por exemplo:

# skip(10), skip(20) e assim por diante
db.movies.find({}).limit(10).skip(10)

Exclusão de Documentos

Para remover documentos no MongoDB usa-se os comandos db.usuarios.deleteOne({<critérios>}) ou o db.usuarios.deleteMany({}) para a remoção de vários documentos.

Bibliografia