Seu Primeiro Laboratório de MongoDB

MongoDBBeginner
Pratique Agora

Introdução

Bem-vindo ao LabEx! Este é o seu primeiro laboratório de MongoDB. Não se preocupe se você nunca usou um banco de dados antes - nós o guiaremos em cada etapa.

Primeiro, vamos entender o que é o MongoDB: MongoDB é um sistema de banco de dados que armazena dados em um formato flexível de documento. Ao contrário das planilhas tradicionais, o MongoDB permite que você organize dados de uma maneira mais natural, semelhante a como você organizaria arquivos em pastas no seu computador.

Neste laboratório, você aprenderá a:

  1. Iniciar o shell do MongoDB e entender o que ele é
  2. Criar seu primeiro banco de dados e coleção
  3. Adicionar e visualizar dados no MongoDB
  4. Contar e remover dados

Essas habilidades formarão a base da sua jornada no MongoDB. Vamos começar!

Clique no botão Continuar abaixo para iniciar o laboratório.

Iniciar o Shell do MongoDB

Antes de iniciarmos o MongoDB, precisamos primeiro abrir um terminal na sua VM LabEx. Você tem duas maneiras de fazer isso:

  1. Interface de Terminal: Recomendamos a interface de terminal pela sua velocidade e facilidade de uso. Esta é a interface padrão para laboratórios relacionados ao MongoDB.

    abrir o terminal na interface de terminal
  2. Interface de Desktop: Se você prefere uma experiência de terminal mais tradicional, pode usar a interface de desktop. Olhe para o lado esquerdo da sua área de trabalho e clique no ícone rotulado Xfce Terminal.

    abrir o terminal na interface de desktop

Ambos os métodos funcionam igualmente bem - são apenas maneiras diferentes de acessar o mesmo ambiente de laboratório. Escolha o que você preferir!

Agora, vamos iniciar o shell do MongoDB, que é como um painel de controle para o nosso banco de dados. Pense no shell como uma forma de falar diretamente com o MongoDB - você digita comandos e o MongoDB responde.

Para iniciar o Shell do MongoDB, digite o seguinte comando no seu terminal e pressione Enter:

mongosh

Você verá uma mensagem de conexão, indicando que você se conectou com sucesso à instância local do MongoDB. A saída será semelhante a esta:

Current Mongosh Log ID: 65a7f3e5f1a1234567890abc
Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+x.y.z
Using MongoDB:          X.X.X
Using Mongosh:          X.X.X

For mongosh info, see: https://docs.mongodb.com/mongodb-shell/

test>

O prompt test> indica que você está agora dentro do shell mongosh e conectado ao banco de dados padrão test.

Vamos listar todos os bancos de dados existentes no servidor. Digite o seguinte comando no shell mongosh:

show dbs

Você verá uma lista de bancos de dados padrão que o MongoDB usa para fins internos:

admin     40.00 KiB
config   112.00 KiB
local     40.00 KiB

Na próxima etapa, você criará seu próprio banco de dados.

Criar um Banco de Dados e Inserir um Documento

No MongoDB, você não precisa criar explicitamente um banco de dados. Ele é criado automaticamente quando você armazena dados nele pela primeira vez. Para mudar para um novo banco de dados, use o comando use.

Vamos mudar para um banco de dados chamado mylab_database. No shell mongosh, digite:

use mylab_database

O shell responderá com switched to db mylab_database. Mesmo que o banco de dados ainda não tenha sido criado, você agora está trabalhando no seu contexto.

Os dados no MongoDB são armazenados em coleções (collections), que são grupos de documentos. Um documento é um conjunto de pares chave-valor. Vamos criar uma coleção users inserindo nosso primeiro documento.

Use o método insertOne() para adicionar um único documento à coleção users:

db.users.insertOne({ name: "JohnDoe", age: 30, city: "NewYork" })

Vamos detalhar este comando:

  • db: Representa o banco de dados atual (mylab_database).
  • users: O nome da coleção. Ela será criada automaticamente.
  • insertOne(): O método para inserir um documento.
  • {...}: O próprio documento, contendo campos como name, age e city.

O MongoDB confirmará a inserção e retornará o _id único que gerou para o documento:

{
  acknowledged: true,
  insertedId: ObjectId("...")
}

O ObjectId é um identificador único atribuído automaticamente a cada documento.

Agora, vamos verificar se o documento foi adicionado. Use o método find() para visualizar todos os documentos na coleção users:

db.users.find()

A saída exibirá o documento que você acabou de inserir:

[
  {
    _id: ObjectId("..."),
    name: 'JohnDoe',
    age: 30,
    city: 'NewYork'
  }
]

Inserir Múltiplos Documentos

Frequentemente, você precisará adicionar vários documentos de uma vez. O método insertMany() é perfeito para isso. Ele recebe um array (lista) de documentos como argumento.

Vamos criar uma nova coleção books e adicionar três livros a ela com um único comando.

db.books.insertMany([
    { title: "MongoDBBasics", author: "JaneSmith", year: 2023 },
    { title: "PythonProgramming", author: "JohnDoe", year: 2022 },
    { title: "DataScienceHandbook", author: "AliceJohnson", year: 2021 }
])

Observe os colchetes [ ], que definem um array. Cada objeto {...} dentro do array é um documento separado.

O MongoDB confirmará a operação e retornará os valores de _id para todos os documentos inseridos:

{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId("..."),
    '1': ObjectId("..."),
    '2': ObjectId("...")
  }
}

Para ver todos os documentos na sua nova coleção books, use o método find() novamente:

db.books.find()

A saída listará todos os três documentos de livro que você acabou de adicionar.

Consultar e Contar Documentos

Agora que você tem dados, vamos aprender como recuperá-los e contá-los.

Para contar o número total de documentos em uma coleção, use o método countDocuments(). Vamos contar os livros em nossa coleção books:

db.books.countDocuments()

O comando retornará a contagem total:

3

Para encontrar documentos específicos, você passa um filtro de consulta (query filter) para o método find(). Um filtro de consulta é um documento que especifica as condições para a busca.

Por exemplo, para encontrar todos os livros escritos por "JohnDoe", use a seguinte consulta:

db.books.find({ author: "JohnDoe" })

O filtro { author: "JohnDoe" } diz ao MongoDB para retornar apenas os documentos onde o campo author tem o valor "JohnDoe".

Você também pode consultar com base em valores numéricos. Vamos encontrar todos os livros publicados no ano de 2023:

db.books.find({ year: 2023 })

Isso retornará o livro "MongoDBBasics". O método find() é uma ferramenta poderosa para recuperar os dados exatos de que você precisa.

Remover Documentos

Por fim, vamos aprender como remover documentos de uma coleção.

Para remover um único documento que corresponda a uma condição específica, use o método deleteOne(). Vamos remover o livro intitulado "MongoDBBasics":

db.books.deleteOne({ title: "MongoDBBasics" })

O shell confirmará que um documento foi excluído:

{ acknowledged: true, deletedCount: 1 }

Para remover vários documentos que correspondam a uma condição, use deleteMany(). Este método suporta operadores de consulta (query operators) para criar condições mais complexas. Por exemplo, $lt significa "menor que" (less than).

Vamos remover todos os livros publicados antes do ano de 2022:

db.books.deleteMany({ year: { $lt: 2022 } })

Este comando exclui todos os documentos onde o campo year é menor que 2022. No nosso caso, ele removerá o "DataScienceHandbook".

Para ver quais livros restam, execute o comando find() mais uma vez:

db.books.find()

Apenas o livro "PythonProgramming" deverá permanecer na coleção.

Você agora praticou as operações básicas de CRUD (Create, Read, Update, Delete) no MongoDB. Para sair do shell mongosh, digite:

exit

Resumo

Parabéns por completar seu primeiro laboratório de MongoDB! Você aprendeu e praticou com sucesso as operações principais para gerenciar dados em um banco de dados MongoDB.

Neste laboratório, você aprendeu a:

  • Iniciar o shell mongosh para interagir com um servidor MongoDB.
  • Usar o comando use para mudar para um banco de dados.
  • Inserir documentos únicos e múltiplos usando insertOne() e insertMany().
  • Recuperar documentos usando find() com e sem filtros de consulta (query filters).
  • Contar documentos em uma coleção com countDocuments().
  • Remover documentos usando deleteOne() e deleteMany().

Essas habilidades fundamentais são os blocos de construção para desenvolver aplicações poderosas com MongoDB. A prática é fundamental, então sinta-se à vontade para experimentar mais com os comandos que você aprendeu.