Artigo original: How to get started with MongoDB in 10 minutes
Escrito por: Navindu Jayatilake
O MongoDB é um banco de dados NoSQL, orientado a documentos do tipo rich document.
Se você é um completo iniciante em NoSQL, eu recomendo dar uma olhada no artigo sobre NoSQL (texto em inglês) que publiquei anteriormente.
Hoje, eu gostaria de compartilhar algumas das questões básicas sobre os comandos do MongoDB, como consultas, filtragem, exclusão, atualização e assim por diante.
Bem, chega de papo, vamos trabalhar!
Configuração
Para trabalhar com o MongoDB, primeiramente, é preciso instalá-lo no seu computador. Para fazer isso, visite o centro de downloads oficial (em inglês) e baixe a versão do seu sistema operacional específico. Para este artigo, utilizei o Windows.
Após baixar o setup do servidor do MongoDB em sua versão Community, você passará por uma sequência de pressionamentos do botão "Next" (ou "Avançar") no momento da instalação. Quando terminar, vá para a unidade C (provavelmente) onde você instalou o MongoDB. Vá até a pasta Arquivos de Programas (ou Program Files) e selecione o diretório do MongoDB.
C: -> Program Files -> MongoDB -> Server -> 5.0(versão) -> bin
No diretório bin, você encontrará dois arquivos executáveis interessantes.
- mongod
- mongo
Vamos falar sobre esses dois arquivos.
mongod significa "Mongo Daemon". mongod é um processo em segundo plano usado pelo MongoDB. A finalidade principal do mongod é gerenciar todas as tarefas do servidor do MongoDB. Exemplos dessas tarefas seriam aceitar solicitações, responder ao client e gerenciar a memória.
mongo é um shell de linha de comando que pode interagir com o client (por exemplo, com administradores e desenvolvedores de sistemas).
Agora, vejamos como podemos colocar esse servidor a funcionar. Para fazer isso no Windows, primeiramente, você precisa criar alguns diretórios na sua unidade C. Abra o prompt de comando na unidade C e faça o seguinte:
C:\> mkdir data/db
A finalidade desses diretórios é dar ao MongoDB uma pasta que ele necessita para armazenar todos os dados. O caminho de diretório padrão do MongoDB é /data/db
na unidade. Assim, é necessário fornecer para ele esses diretórios.
Se você iniciar o servidor do MongoDB sem esses diretórios, provavelmente receberá a seguinte mensagem de erro:

Após criar essas duas pastas, volte à pasta bin que você tem no diretório do mongodb e abra o prompt de comando (ou o powershell) dentro dela. Execute o seguinte comando:
mongod
Aí está! Agora, seu servidor do MongoDB está pronto e funcionando!
Para trabalhar com esse servidor, precisamos de um mediador. Assim sendo, abra outra janela de comando dentro da pasta bin e execute o seguinte comando:
mongo
Depois de executar esse comando, navegue até o shell, onde executaremos o comando mongod (nosso servidor). Você verá uma mensagem dizendo "connection accepted" ("conexão aceita"). Isso significa que nossa instalação e configuração tiveram sucesso!
Agora, basta executar no shell do mongo:
db

Configurando as variáveis de ambiente
Para economizar tempo, você pode configurar suas variáveis de ambiente. No Windows, fazemos isso nos menus abaixo:
Configurações avançadas do sistema -> Variáveis de ambiente -> Path(Em variáveis do sistema) -> Editar
Simplesmente copie o caminho de sua pasta bin e pressione OK! No meu caso, está em C:\Program Files\MongoDB\Server\5.0\bin
Tudo pronto!
Trabalhando com o MongoDB
Existem algumas GUIs (Interfaces Gráficas de Usuário) que funcionam com o servidor do MongoDB, como o MongoDB Compass, Studio 3T e assim por diante.
Eles fornecem uma interface gráfica para que você possa trabalhar facilmente com seu banco de dados e realizar consultas em vez de usar um shell e digitar as consultas manualmente.
Neste artigo, usaremos o prompt de comando para fazermos nosso trabalho.
Agora é o momento de mergulhar nos comando do MongoDB que ajudarão você a usá-lo com seus projetos futuros.
- Abra seu prompt de comando e digite
mongod
para iniciar o servidor do MongoDB.
2. Abra outro shell e digite mongo
para se conectar ao servidor de banco de dados do MongoDB.
1. Como encontrar o banco de dados em que você está trabalhando no momento
db

Esse comando mostrará o banco de dados em que você se encontra no momento. test
é o banco de dados inicial, que vem por padrão.
2. Como listar os bancos de dados
show databases

No momento, eu tenho quatro bancos de dados. São eles: CrudDB
, admin
, config
e local
.
3. Como ir para um banco de dados específico
use <nome_do_bd>

Aqui, eu passei a usar o banco de dados local
. Você pode conferir isso se tentar usar o comando db
para mostrar o nome do banco de dados atual.
4. Como criar um banco de dados
Com os RDBMS (Sistemas de gerenciamento de bancos de dados relacionais), nós temos bancos de dados, tabelas, linhas e colunas.
Porém, nos bancos de dados NoSQL, como o MongoDB, os dados são armazenados no formato BSON (uma versão binária do JSON). Eles são armazenados em estruturas chamadas "collections" (coleções).
Nos bancos de dados SQL, eles seriam semelhantes às tabelas.


Certo, vamos falar sobre como criar um banco de dados no shell do mongo.
use <nome_do_bd>
Espere, mas já usamos esse comando antes! Por que estamos usando esse comando novamente?
No servidor do MongoDB, se o seu banco de dados já estiver presente, ao usar esse comando, você irá para o banco de dados em questão.
Se o banco de dados, no entanto, não estiver presente, o servidor do MongoDB criará o banco de dados para você. Em seguida, navegaremos para ele.
Após criar um banco de dados, executar o comando show database
não mostrará seu banco de dados recém-criado. Isso ocorre porque, até que ele tenha dados (documentos) internamente, ele não aparecerá em sua lista de bancos de dados.
5. Como criar uma coleção
Navegue até o banco de dados recém-criado com o comando use
.
De fato, existem dias maneiras de se criar uma coleção. Vejamos as duas.
Uma maneira de inserir dados na coleção:
db.myCollection.insert({"name": "john", "age" : 22, "location": "colombo"})
Esse comando criará a coleção myCollection
mesmo que ela ainda não exista. Em seguida, serão inseridos na coleção um documento com name
e age
. Elas são coleções sem limites de tamanho.
A segunda maneira é exibida abaixo:
2.1 Criar uma coleção sem limite de tamanho
db.createCollection("myCollection")
2.2 Criar uma coleção com limite de tamanho
db.createCollection("mySecondCollection", {capped : true, size : 2, max : 2})
Nesse momento, você criará uma coleção sem inserir dados.
Uma "coleção com limite" tem uma contagem máxima de documentos que evita o excesso de documentos.
Neste exemplo, habilitamos os limites ao definir o valor de capped
como true
.
size: 2
representa o limite de dois megabytes, enquanto max: 2
define o número máximo de documentos como sendo 2.
Agora, se você tentar inserir mais de dois documentos a mySecondCollection
e se usar o comando find
(sobre o qual falaremos em instantes), você verá apenas os documentos inseridos mais recentemente. Lembre-se de que isso não significa que os primeiros elementos foram excluídos — eles apenas não estão sendo exibidos.
6. Como inserir dados
Podemos inserir dados em uma nova coleção, ou em uma coleção previamente criada.

Existem três métodos de inserção de dados.
insertOne()
é usado para inserir um único documento.insertMany()
é usado para inserir mais de documento.insert()
é usado para inserir quantos documentos você quiser.
Abaixo, temos alguns exemplos:
- insertOne()
db.myCollection.insertOne(
{
"name": "navindu",
"age": 22
}
)
- insertMany()
db.myCollection.insertMany([
{
"name": "navindu",
"age": 22
},
{
"name": "kavindu",
"age": 20
},
{
"name": "john doe",
"age": 25,
"location": "colombo"
}
])
O método insert()
é semelhante ao método insertMany()
.
Além disso, observe que inserimos uma nova propriedade chamada location
no documento para John Doe
. Assim, se você usar find
, verá somente para john doe
a propriedade location
anexada.
Essa pode ser uma vantagem no que diz respeito aos bancos de dados NoSQL, como o MongoDB, pois permite a escalabilidade.

7. Como consultar dados
Aqui está como você pode consultar todos os dados de uma coleção:
db.myCollection.find()

Para você ver esses dados de modo mais claro, basta adicionar .pretty()
ao final do comando. Isso exibirá o documento em um formato melhor em JSON .
db.myCollection.find().pretty()

Espere... nesses exemplos, você percebeu algo como _id
? Como isso chegou aí?
Bem, sempre que você insere um documento, o MongoDB adiciona automaticamente um campo _id
, o qual identifica exclusivamente cada documento. Se não quiser que ele seja exibido, basta executar o comando abaixo
db.myCollection.find({}, _id: 0).pretty()
A seguir, veremos a filtragem dos dados.
Se quiser exibir alguns documentos específicos, você pode especificar um único detalhe do documento que você deseja exibir.
db.myCollection.find(
{
name: "john"
}
)

Digamos que você queira exibir apenas pessoas cuja idade (em inglês, age
) é inferior a 25. Você pode usar $lt
para filtrar desse modo.
db.myCollection.find(
{
age : {$lt : 25}
}
)
Da mesma forma que $lt
representa "menor que", $gt
representa "maior que", $lte
representa "menor que ou igual a", $gte
representa "maior que ou igual a" e $ne
representa "diferente de".
8. Como atualizar documentos
Suponhamos que você deseje atualizar a idade (age
) e o endereço (address
) de uma pessoa. Como fazer isso? Aqui temos um exemplo:
db.myCollection.update({age : 20}, {$set: {age: 23}})
O primeiro argumento é o campo de qual documento você deseja atualizar. Aqui, eu especifiquei age
por questão de simplicidade. Em um ambiente de produção, você pode usar algo como o campo _id
.
Sempre é melhor usar algo como o campo _id
para atualizar uma única linha. Isso ocorre porque diversos campos podem ter os mesmos valores para age
e name
. Assim, se você atualizar uma única linha, afetará todas as linhas que tenham o mesmo nome e a mesma idade.

Se você atualizar um documento dessa maneira com uma nova propriedade - digamos, por exemplo, location
- o documento será atualizado com o novo atributo. Se usar find
, o resultado será:

Se quiser remover uma propriedade de um único documento, você pode fazer algo assim (digamos que você queira excluir age
):
db.myCollection.update({name: "navindu"}, {$unset: age});
9. Como remover um documento
Como mencionei anteriormente, quando você quiser atualizar ou excluir um documento, basta especificar o _id
, não apenas name
, age
ou location
.
db.myCollection.remove({name: "navindu"});
10. Como remover uma coleção
db.myCollection.remove({});
Observe que isso não equivale ao método drop()
. A diferença é que drop()
é usado para remover todos os documentos dentro de uma coleção, enquanto o método remove()
é usado para excluir todos os documentos, juntamente com a própria coleção.
Operadores lógicos
O MongoDB oferece operadores lógicos. A imagem abaixo resume os tipos diferentes de operadores lógicos.


Digamos que você queira exibir as pessoas cuja idade é inferior a 25 e também aquelas cuja localidade é Colombo. O que podemos fazer?
Podemos usar o operador $and
!
db.myCollection.find({$and:[{age : {$lt : 25}}, {location: "colombo"}]});
Para encerrar, vamos falar de agregação.
Agregação
Um lembrete rápido sobre o que aprendemos sobre funções de agregação em bancos de dados em SQL:

De um modo simplificado, a agregação agrupa valores de vários documentos e os resume de algum modo.
Imagine que temos alunos do gênero masculino e feminino em uma coleção recordBook
e que queremos uma contagem total de cada um deles. Para obter a soma de masculinos (male
) e femininos (females
), poderíamos usar a função de agregação $group
.
db.recordBook.aggregate([
{
$group : {_id : "$gender", result: {$sum: 1}}
}
]);

Em resumo
Aqui, discutimos o básico sobre o MongoDB que você precisará para criar uma aplicação. Espero que tenha gostado do artigo – obrigado pela leitura!
Se tiver perguntas com relação a este tutorial, fique à vontade para entrar em contato com o autor pelo Facebook, Twitter ou Instagram (em inglês).
Vejo vocês em um próximo artigo! ❤️ ✌
Link para outro artigo do autor sobre o assunto: NoSQL (em inglês)