---
# System prepended metadata

title: MongoDB Cheat Sheet

---

![Logo](https://i.imgur.com/hsGeqyY.png)

# MongoDB Cheat Sheet
###### Inspirado no cheat sheet do [Web Dev Simplified](https://webdevsimplified.com/mongodb-cheat-sheet.html)
> [TOC]

## Terminology

### Database
> [color=#f23cf2] Um contêiner para coleções. Isso é o mesmo que um banco de dados em SQL e
geralmente cada projeto terá seu próprio banco de dados cheio de coleções diferentes.

### Collection
> [color=#f23cf2] Um agrupamento de documentos dentro de um banco de dados. Isso é o mesmo que uma tabela em
SQL e geralmente cada tipo de dados (usuários, posts, produtos) terão seus próprios
collection.collections.

### Document
> [color=#f23cf2] Um registro dentro de uma coleção. Isso é o mesmo que uma linha no SQL e geralmente
haverá um documento por objeto na coleção. Um documento é também
essencialmente apenas um objeto JSON.

### Field
> [color=#f23cf2] Um par de chave-valor em um documento. Isso é o mesmo que uma coluna no SQL.
Cada documento terá um certo número de campos que contêm informações
como nome, endereço, hobbies, etc. Uma diferença importante entre SQL
e MongoDB é que um campo pode conter valores como objetos JSON e
arrays em vez de apenas strings, número, booleanos, etc.

## Basic Commands
```mongosh=1
 mongosh 
```
> [color=#f23cf2] Abre uma conexão com sua instância local do MongoDB. Todos os outros comandos será executado dentro desta conexão mongosh.
  
---

```mongosh=1    
show dbs
```
> [color=#f23cf2] Mostrar todos os bancos de dados na instância atual do MongoDB

---
  
```mongosh=1    
use <dbname>
use myDatabase
```
> [color=#f23cf2] Mude para o banco de dados fornecido por dbname
Mudar para myDatabase

---
  
```mongosh=1    
db
```
> [color=#f23cf2] Mostrar nome do banco de dados atual

---
  
```mongosh=1    
cls
```
> [color=#f23cf2] Limpar a tela do terminal

---
  
```mongosh=1    
show collections
```
> [color=#f23cf2] Mostrar todas as coleções no banco de dados atual

---
  
```mongosh=1    
db.dropDatabase()
```
> [color=#f23cf2] Excluir o banco de dados atual

---

```mongosh=1    
exit
```
> [color=#f23cf2] Saia da sessão mongosh

## Create
> [color=#ae5fd8] Cada um desses comandos é executado em uma coleção específica
`db.<collectionName>.<command>`

### **insertOne**
```mongosh=1
db.users.insertOne({ name: "Jonathan" })
```

> [color=#f23cf2] Crie um novo documento dentro da coleção especificada.
Adiciona um novo documento com o nome de Jonathan na coleção de usuários

### **insertMany**
```mongosh=1
db.users.insertMany([{ age: 26 }, { age: 20 }])
```

> [color=#f23cf2] Crie vários novos documentos dentro de uma coleção específica.
Adicione dois novos documentos com 26 e 20 anos de idade à coleção de usuários

## Read
> [color=#ae5fd8] Cada um desses comandos é executado em uma coleção específica
`db.<collectionName>.<command>`

### **find**
```mongosh=1
db.users.find()
```

> [color=#f23cf2] Obtenha todos os documentos.
Obter todos os usuários

### **find(\<filterObject>)**
```mongosh=1
db.users.find({ name: "Jonathan" })
db.users.find({ "address.street": "123 Main St" })
```

> [color=#f23cf2] Encontre todos os documentos que correspondem ao objeto de filtro.
Obtenha todos os usuários com o nome Jonathan
Obtenha todos os usuários cujo campo de endereço tenha um campo de rua com o valor 123 Main St
   
### **find(\<filterObject>, \<selectObeject>)**
 ```mongosh=1
db.users.find({ name: "Jonathan" }, { name: 1, age: 1 })
db.users.find({}, { age: 0})
``` 

> [color=#f23cf2] Encontre todos os documentos que correspondem ao objeto de filtro, mas apenas retornar o campo especificado no objeto selecionado.
Obtenha todos os usuários com o nome Jonathan, mas retorne apenas seu nome, idade e _id
Obter todos os usuários e retornar todas as colunas, exceto idade

### **findOne**
```mongosh=1    
db.users.findOne({ name: "Jonathan" })
```

> [color=#f23cf2] O mesmo que find, mas retornar apenas o primeiro documento que corresponde ao objeto de filtro.
Obtenha o primeiro usuário com o nome Jonathan

### **countDocuments**
```mongosh=1   
db.users.countDocuments({ name: "Jonathan" })
```
> [color=#f23cf2] Retorna a contagem dos documentos que correspondem ao filtro
objeto passado para ele.
Obtenha o número de usuários com o nome Jonathan

## Update
> [color=#ae5fd8] Cada um desses comandos é executado em uma coleção específica
`db.<collectionName>.<command>`

### **updateOne**
```mongosh=1
db.users.updateOne({ age: 20 }, { $set: { age: 21 } })
```

> [color=#f23cf2] Atualiza o primeiro documento que corresponde ao objeto de filtro com os dados passados para o segundo parâmetro que é o
atualizar objeto.
Atualize o primeiro usuário com idade de 20 para a idade de 21

### **updateMany**
```mongosh=1
db.users.updateMany({ age: 12 }, { $inc: { age: 3 } })
```

> [color=#f23cf2] Atualize todos os documentos que correspondem ao objeto de filtro com o dados passados para o segundo parâmetro que é a atualização objeto.
Atualize todos os usuários com idade de 12 anos adicionando 3 à idade deles

### **replaceOne**
```mongosh=1
db.users.replaceOne({ age: 12 }, { age: 13 })
```

> [color=#f23cf2] Substitua o primeiro documento que corresponde ao objeto de filtro com o objeto exato passado como o segundo parâmetro. este substituirá completamente o objeto inteiro e não apenas
atualizar campos individuais.
Substitua o primeiro usuário com 12 anos de idade por um objeto que tenha 13 anos como seu único campo

## Delete
> [color=#ae5fd8] Cada um desses comandos é executado em uma coleção específica
`db.<collectionName>.<command>`

### **deleteOne**
```mongosh=1
db.users.deleteOne({ age: 20 })
```

> [color=#f23cf2] Excluir o primeiro documento que corresponde ao objeto de filtro.
Excluir o primeiro usuário com 20 anos de idade

### **deleteMany**
```mongosh=1
db.users.deleteOne({ age: 12 })
```

> [color=#f23cf2] Excluir todos os documentos que correspondem ao objeto de filtro.
Excluir todos os usuários com idade de 12 anos

## Complex Filter Object
> [color=#ae5fd8] Qualquer combinação dos itens abaixo pode ser usada dentro de um objeto de filtro para fazer consultas complexas

### **\$eq**
```mongosh=1
db.users.find({ name: { $eq: "Jonathan" } })
```

> [color=#f23cf2] Verifique a igualdade.
Obter todos os usuários com o nome Jonathan

### **\$ne**
```mongosh=1
db.users.find({ name: { $ne: "Jonathan" } })
```

> [color=#f23cf2] Verifique se não é igual.
Obter todos os usuários com um nome diferente de Jonathan

### **\$gt \/ \$gte**
```mongosh=1
db.users.find({ age: { $gt: 12 } })
db.users.find({ age: { $gte: 15 } })
```

> [color=#f23cf2] Verifique se há maior que e maior ou igual a. 
Obter todos os usuários com idade superior a 12 anos
Obter todos os usuários com idade maior ou igual a 15 anos

### **\$lt \/ \$lte**
```mongosh=1
db.users.find({ age: { $lt: 12 } })
db.users.find({ age: { $lte: 15 } })
```

> [color=#f23cf2] Verifique se há menor e menor ou igual a.
Obter todos os usuários com idade inferior a 12 anos
Obter todos os usuários com idade menor ou igual a 15 anos

### **\$in**
```mongosh=1
db.users.find({ name: { $in: ["Maria Victória", "Jonathan"]} })
```

> [color=#f23cf2] Verificar se um valor é um dos muitos valores.
Obter todos os usuários com um nome de Maria Victória ou Jonathan

### **\$nin**
```mongosh=1
db.users.find({ name: { $nin: ["Maria Victória", "Jonathan"]} })
```

> [color=#f23cf2] Verifique se um valor não é nenhum dos muitos valores.
Obtenha todos os usuários que não têm o nome Maria Victória ou Jonathan

### **\$and**
```mongosh=1
db.users.find({ $and: [{ age: 12 }, { name: "Jonathan"}] })
db.users.find({ age: 12, name: "Jonathan" })
```

> [color=#f23cf2] Verifique se várias condições são todas verdadeiras.
Obtenha todos os usuários que tenham 12 anos e o nome Jonathan
e uma maneira alternativa de fazer a mesma coisa. Geralmente você não precisa de $and.

### **\$or**
```mongosh=1
db.users.find({ $or: [{ age: 12 }, { name: "Jonathan"}] })
```

> [color=#f23cf2] Verifique se uma das várias condições é verdadeira.
Obter todos os usuários com um nome de Jonathan ou uma idade de 12 anos

### **\$not**
```mongosh=1
db.users.find({ name: { $not: { $eq: "Jonathan" } } })
```

> [color=#f23cf2] Negue o filtro dentro de \$not.
Obter todos os usuários com um nome diferente de Jonathan

### **\$exists**
```mongosh=1
db.users.find({ name: { $exists: true } })
```

> [color=#f23cf2] Verifique se existe um campo.
Obter todos os usuários que têm um campo de nome

### **\$expr**
```mongosh=1
db.users.find({ $expr: { $gt: ["$balance", "$debt"] } })
```

> [color=#f23cf2] Faça comparações entre diferentes campos.
Obtenha todos os usuários com saldo maior que a dívida.

### **\$size**
```mongosh=1
db.users.find({ hobbies: { $size: 2 } })
```
> [color=#f23cf2] O $size corresponde a qualquer array com o número de elementos especificados pelo argumento.
Retornar os usuários que tem 2 elementos no array de hobbies.

## Complex Update Object
> [color=#ae5fd8] Qualquer combinação dos itens abaixo pode ser usada dentro de um objeto de atualização para fazer atualizações complexas

### **\$set**
```mongosh=1
db.users.updateOne({ age: 12 }, { $set: { name: "Davi" } })
```

> [color=#f23cf2] Atualize apenas os campos passados para \$set. Isso não afetará
quaisquer campos não passados para \$set.
Atualize o nome do primeiro usuário com 12 anos para o valor Davi

### **\$inc**
```mongosh=1
db.users.updateOne({ age: 12 }, { $inc: { age: 2 } })
```

> [color=#f23cf2] Incremente o valor do campo pelo valor fornecido.
Adicione 2 à *age* do primeiro usuário com 12 anos


### **\$rename**
```mongosh=1
db.users.updateMany({}, { $rename: { age: "years" } })
```

> [color=#f23cf2] Renomear um campo.
Renomeie o campo *age* para *years* para todos os usuários

### **\$unset**
```mongosh=1
db.users.updateOne({ age: 12 }, { $unset: { age: "" } })
```

> [color=#f23cf2] Remover um campo.
Remove o campo *age* do primeiro usuário com 12 anos

### **\$push**
```mongosh=1
db.users.updateMany({}, { $push: { friends: "Ingrid" } })
```

> [color=#f23cf2] Adicionar um valor a um campo de *array*.
Adiciona Ingrid ao *array* de *friends* para todos os usuários

### **\$pull**
```mongosh=1
db.users.updateMany({}, { $pull: { friends: "João" } })
```

> [color=#f23cf2] Remover um valor de um campo de *array*
Remove o João do *array* de *friends* para todos os usuários


### **\$currentDate**
```mongosh=1
db.users.updateOne({ name: "Jonathan" }, { $currentDate: { date: true } })
```

> [color=#f23cf2] Define o valor de um campo para a data atual, podendo ser do tipo date ou timestamp. O padrão é date.
Atualizar o campo date do usuário Jonathan para a data atual.


## Read Modifiers
> [color=#ae5fd8] Qualquer combinação dos itens abaixo pode ser adicionada ao final de qualquer operação de leitura

### **sort**
```mongosh=1
db.users.find().sort({ name: 1, age: -1 })
```

> [color=#f23cf2] Ordenar os resultados de uma pesquisa pelos campos fornecidos.
Ordernar todos os usuários por *name* em ordem alfabética e, se algum *name* for o mesmo a ordernação por *age* em ordem inversa

### **limit**
```mongosh=1
db.users.find().limit(2)
```

> [color=#f23cf2] Retorna apenas um número definido de documentos.
Retorna apenas os 2 primeiros usuários

### **skip**
```mongosh=1
db.users.find().skip(4)
```

> [color=#f23cf2] Pule um número definido de documentos desde o início.
Pule os primeiros 4 usuários ao retornar resultados. Isso é ótimo para paginação quando
combinado com *limit*.

### **pretty**
```mongosh=1
db.users.find().pretty()
```

> [color=#f23cf2] Configura o cursor para exibir os resultados em um formato de fácil leitura.
Retorna todos os usuários.