Login
Login

Como usar o MongoDB Shell

Como usar o MongoDB Shell
Minhal Abbas
Redator técnico
Banco de dados MongoDB
23.10.2025
Reading time: 9 min

O MongoDB Shell é um ambiente REPL (Read-Eval-Print Loop) adaptável baseado em JavaScript e Node.js para trabalhar com implementações do MongoDB. É uma ferramenta essencial para consultar dados, administrar bancos de dados e executar várias operações. Ele oferece uma interface intuitiva para o controle de bancos de dados, seja em um servidor remoto ou localmente.

Este artigo apresenta instruções passo a passo sobre como utilizar o MongoDB Shell.

Etapa 1: Instalação do MongoDB Shell

Antes de iniciar as operações, certifique-se de que o MongoDB Shell está instalado no sistema. Caso contrário, baixe a versão apropriada no site oficial e siga as instruções de instalação para o seu sistema.

Windows

Visite a página oficial, escolha a versão para Windows e inicie o download.

macOS

Na página oficial, selecione a versão para macOS e inicie o processo de download. Alternativamente, você pode usar o Homebrew executando os comandos:

brew tap mongodb/brew
brew install mongosh

Linux

Consulte as instruções fornecidas no site para o sistema operacional Linux. Por exemplo, em um sistema baseado em Debian, siga estas etapas:

Adicione a chave GPG para o repositório do MongoDB:

curl -fsSL https://pgp.mongodb.com/server-7.0.asc |  sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

Adicione o repositório MongoDB ao sistema:

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

Atualize a lista de pacotes:

sudo apt update

Instale o MongoDB:

sudo apt install mongodb-org -y

Image4

Após a instalação bem-sucedida, verifique a versão instalada:

mongod --version

Image6

Depois de instalado, habilite, inicie e verifique o serviço:

sudo systemctl enable mongod
sudo systemctl start mongod
sudo systemctl status mongod

Image5

Se você está procurando uma solução confiável, de alto desempenho e econômica para seus fluxos de trabalho, a Hostman oferece opções de hospedagem VPS Linux, incluindo Debian VPS, Ubuntu VPS e VPS CentOS.

Etapa 2: Conectando-se a uma instância

Após a instalação, você pode estabelecer conexões com uma instância. Se for local, digite mongosh. Por padrão, ele se conecta à instância executando na porta 27017 em localhost:

mongosh

Image7

A seguinte sintaxe é usada para conectar-se a um servidor remoto:

mongodb+srv://<nome_de_usuário>:<senha>@<endereço_do_cluster>/<banco_de_dados>?retryWrites=true&w=majority

Substitua <nome_de_usuário>, <senha>, <endereço_do_cluster> e <banco_de_dados> pelas credenciais e detalhes reais de conexão.

Etapa 3: Navegando no terminal

Depois de conectado, você pode trabalhar com bancos de dados. Antes disso, a interface exibe uma mensagem de boas-vindas:

Image7

O banco de dados atribuído a uma nova instância do Shell é chamado test. Ele pode ser usado com segurança para experimentação.

Operações úteis são mostradas abaixo:

Exibindo todos os bancos de dados

Execute show dbs para visualizar todos os bancos de dados disponíveis:

show dbs

Image10

Acessando o banco de dados atual

A maioria dos comandos opera em um banco de dados ou coleção dentro dele. O objeto db representa o banco de dados atualmente selecionado:

db

Image9

Trocando de banco de dados

Digite o comando use com o nome do banco de dados, por exemplo new_db, para criar ou mudar para ele:

use new_db

Image11

Substitua new_db pelo nome real do banco de dados.

Inserindo um objeto

Primeiro, insira um objeto com um nome em student_data no new_db existente:

db.student_data.insertOne({name: 'School has 500 students'})

Image1

Você também pode inserir vários documentos em student_data, cada um com um campo name e valores definidos. Isso permite inserção em lote de dados na coleção:

db.student_data.insertMany([
{name: 'School has 500 students'},
{name: 'School has 600 students'}
])

Image8

Visualizando coleções

Após inserir os dados, exiba as coleções existentes:

show collections

Image14

Se você não quiser executar mais tarefas, saia da interface com:

exit

Image12

Agora você entende as operações básicas do Shell.

Etapa 4: Operações CRUD

Ao trabalhar com o Shell, as operações CRUD (Criar, Ler, Atualizar, Excluir) são essenciais. Vamos executar algumas operações básicas:

Criar/Inserir dados

Ao inserir novas informações em uma coleção, use a função insertOne. Vamos criar uma nova coleção e preenchê-la com as informações necessárias, incluindo name (nome), age (idade) e city (cidade):

db.collection.insertOne({ name: "Harry", age: 45, city: "Sydney" })

Image13

Encontrar/Ler dados

Você pode consultar documentos associados à coleção usando a função find. Por exemplo, todos os registros com idade superior a 25 são recuperados:

db.collection.find({ age: { $gt: 25 } }) //  Condição em que a idade é maior que 25

Image15

Modificar dados

Use as funções updateOne ou updateMany para modificar documentos existentes. Por exemplo, a idade do usuário chamado Harry é atualizada para 50:

db.collection.updateOne({ name: "Harry" }, { $set: { age: 50 } })

Image16

Excluir dados

Use os métodos deleteOne ou deleteMany para remover registros da coleção. Este comando exclui um documento com o valor John no campo de name:

db.collection.deleteOne({ name: "John" })

Image17

Etapa 5: Uso avançado

Nesta etapa, execute operações complexas usando funcionalidades avançadas. Com ferramentas de depuração, análise e otimização de desempenho, o Shell ajuda a identificar gargalos e otimizar sua configuração.

Pipeline de agregação

Com os pipelines, é possível calcular registros e obter resultados agregados. Usando pipelines, você pode criar análises e transformações complexas para extrair informações valiosas dos dados brutos. Para executar um pipeline de estágios, use a função aggregate. Aqui está um exemplo:

db.collection.aggregate([
    { $match: { status: "A" } },
    { $group: { _id: "$city", total: { $sum: "$amount" } } },
    { $sort: { total: -1 } }
])

Image18

Neste script, o pipeline filtra documentos com status A, agrupa-os por city, soma os valores e classifica os resultados em ordem decrescente.

O pipeline de agregação é uma ferramenta poderosa para análise e transformação de dados. Ele é composto por várias etapas, cada uma alterando o fluxo de documentos. Essas etapas incluem:

$project: seleciona ou exclui campos específicos.

$match: aplica uma condição de consulta para filtragem.

$group: agrupa registros por um campo e calcula agregações.

$sort: ordena os resultados de acordo com um campo.

$limit: limita o número de registros.

$skip: ignora um número específico de registros.

MapReduce

Um paradigma eficaz para processar grandes conjuntos de dados. Para executar tarefas MapReduce, use o comando mapReduce:

// Dados de exemplo
db.collection.insertMany([
    { name: "Harry", age: 25, salary: 5000 },
    { name: "Buttler", age: 30, salary: 6000 },
    { name: "Morgan", age: 35, salary: 7000 }
]);

// Função Map
var mapFunction = function() {
    emit(this.age, this.salary);
};

// Função Reduce
var reduceFunction = function(keyAge, valuesSalaries) {
    return Array.sum(valuesSalaries);
};

// Executar MapReduce
db.runCommand({
    mapreduce: "collection",
    map: mapFunction,
    reduce: reduceFunction,
    out: "results"
});

db.results.find().forEach(printjson); // Exibir resultados

Image3

  • Neste exemplo, a função mapFunction emite a idade como chave e o salário como valor.
  • A função reduceFunction soma os salários para cada grupo de idade.

  • Os resultados são armazenados em uma nova coleção chamada results, e a saída final é exibida com db.results.find().forEach(printjson).

O resultado é mostrado abaixo:

Image22

Projeção

Use o operador de projeção para especificar quais campos devem ser incluídos ou excluídos do conjunto de resultados. Ele recupera todas as informações associadas a uma consulta específica, por exemplo, exibindo apenas os campos name e age. Vamos projetar apenas os campos name e age:

db.collection.find({}, { name: 1, age: 1 }) 

Image19

Classificação

Classifique os resultados usando a função sort. Ela recupera todos os documentos do conjunto e os ordena em ordem decrescente de idade, exibindo primeiro os valores mais altos. Vamos classificar por idade em ordem decrescente:

db.collection.find().sort({ age: -1 }) 

Image20

Limitação

Os usuários podem limitar o número de resultados com a função limit. Por exemplo, obtenha os três primeiros documentos da coleção. É útil para visualizar um pequeno subconjunto de dados sem buscar a lista completa. Vamos limitar a 3 resultados:

db.collection.find().limit(3) 

Image21

Pular registros

Você pode pular registros usando a função skip. Por exemplo, pular os dois primeiros documentos da coleção. É útil para paginação ou ignorar os primeiros registros. Vamos pular os 2 primeiros resultados:

db.collection.find().skip(2) 

Image23

Etapa 6: Scripts com o Shell

Os usuários podem escrever scripts para automatizar tarefas dentro do Shell. Para fazer isso, salve o script em um arquivo .js e execute-o com mongosh. Isso é útil para realizar tarefas repetitivas de forma eficiente, como inserção de dados ou atualizações em lote:

mongosh script.js

Image2

Ao dominar os comandos do MongoDB, você obterá informações valiosas sobre seus dados.

Conclusão

Com a interface interativa do MongoDB Shell, você pode realizar tarefas administrativas repetitivas, como escrever, ler e modificar dados. Além disso, é possível consultar coleções existentes, adicionar novos objetos ao banco de dados e executar tarefas de administração. De operações CRUD simples a agregações e scripts complexos, os usuários podem usar a interface para executar uma ampla variedade de atividades.

Executando scripts, os usuários podem automatizar tarefas repetitivas com eficiência. Este tutorial abordou a instalação, configuração e tarefas administrativas para gerenciar bancos de dados, suas coleções e seus usuários.

Banco de dados MongoDB
23.10.2025
Reading time: 9 min

Semelhante

Tem perguntas,
comentários ou preocupações?

Nossos profissionais estão disponíveis para ajudá-lo a qualquer momento,
seja para assistência ou apenas se você não souber por onde começar.
Envie-nos um e-mail
Hostman's Support