Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

MongoDB Cheat Sheet

Inspirado no cheat sheet do Web Dev Simplified

Terminology

Database

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

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

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

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

Abre uma conexão com sua instância local do MongoDB. Todos os outros comandos será executado dentro desta conexão mongosh.


show dbs

Mostrar todos os bancos de dados na instância atual do MongoDB


use <dbname> use myDatabase

Mude para o banco de dados fornecido por dbname
Mudar para myDatabase


db

Mostrar nome do banco de dados atual


cls

Limpar a tela do terminal


show collections

Mostrar todas as coleções no banco de dados atual


db.dropDatabase()

Excluir o banco de dados atual


exit

Saia da sessão mongosh

Create

Cada um desses comandos é executado em uma coleção específica
db.<collectionName>.<command>

insertOne

db.users.insertOne({ name: "Jonathan" })

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

db.users.insertMany([{ age: 26 }, { age: 20 }])

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

Cada um desses comandos é executado em uma coleção específica
db.<collectionName>.<command>

find

db.users.find()

Obtenha todos os documentos.
Obter todos os usuários

find(<filterObject>)

db.users.find({ name: "Jonathan" }) db.users.find({ "address.street": "123 Main St" })

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>)

db.users.find({ name: "Jonathan" }, { name: 1, age: 1 }) db.users.find({}, { age: 0})

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

db.users.findOne({ name: "Jonathan" })

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

db.users.countDocuments({ name: "Jonathan" })

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

Cada um desses comandos é executado em uma coleção específica
db.<collectionName>.<command>

updateOne

db.users.updateOne({ age: 20 }, { $set: { age: 21 } })

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

db.users.updateMany({ age: 12 }, { $inc: { age: 3 } })

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

db.users.replaceOne({ age: 12 }, { age: 13 })

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

Cada um desses comandos é executado em uma coleção específica
db.<collectionName>.<command>

deleteOne

db.users.deleteOne({ age: 20 })

Excluir o primeiro documento que corresponde ao objeto de filtro.
Excluir o primeiro usuário com 20 anos de idade

deleteMany

db.users.deleteOne({ age: 12 })

Excluir todos os documentos que correspondem ao objeto de filtro.
Excluir todos os usuários com idade de 12 anos

Complex Filter Object

Qualquer combinação dos itens abaixo pode ser usada dentro de um objeto de filtro para fazer consultas complexas

$eq

db.users.find({ name: { $eq: "Jonathan" } })

Verifique a igualdade.
Obter todos os usuários com o nome Jonathan

$ne

db.users.find({ name: { $ne: "Jonathan" } })

Verifique se não é igual.
Obter todos os usuários com um nome diferente de Jonathan

$gt / $gte

db.users.find({ age: { $gt: 12 } }) db.users.find({ age: { $gte: 15 } })

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

db.users.find({ age: { $lt: 12 } }) db.users.find({ age: { $lte: 15 } })

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

db.users.find({ name: { $in: ["Maria Victória", "Jonathan"]} })

Verificar se um valor é um dos muitos valores.
Obter todos os usuários com um nome de Maria Victória ou Jonathan

$nin

db.users.find({ name: { $nin: ["Maria Victória", "Jonathan"]} })

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

db.users.find({ $and: [{ age: 12 }, { name: "Jonathan"}] }) db.users.find({ age: 12, name: "Jonathan" })

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

db.users.find({ $or: [{ age: 12 }, { name: "Jonathan"}] })

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

db.users.find({ name: { $not: { $eq: "Jonathan" } } })

Negue o filtro dentro de $not.
Obter todos os usuários com um nome diferente de Jonathan

$exists

db.users.find({ name: { $exists: true } })

Verifique se existe um campo.
Obter todos os usuários que têm um campo de nome

$expr

db.users.find({ $expr: { $gt: ["$balance", "$debt"] } })

Faça comparações entre diferentes campos.
Obtenha todos os usuários com saldo maior que a dívida.

$size

db.users.find({ hobbies: { $size: 2 } })

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

Qualquer combinação dos itens abaixo pode ser usada dentro de um objeto de atualização para fazer atualizações complexas

$set

db.users.updateOne({ age: 12 }, { $set: { name: "Davi" } })

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

db.users.updateOne({ age: 12 }, { $inc: { age: 2 } })

Incremente o valor do campo pelo valor fornecido.
Adicione 2 à age do primeiro usuário com 12 anos

$rename

db.users.updateMany({}, { $rename: { age: "years" } })

Renomear um campo.
Renomeie o campo age para years para todos os usuários

$unset

db.users.updateOne({ age: 12 }, { $unset: { age: "" } })

Remover um campo.
Remove o campo age do primeiro usuário com 12 anos

$push

db.users.updateMany({}, { $push: { friends: "Ingrid" } })

Adicionar um valor a um campo de array.
Adiciona Ingrid ao array de friends para todos os usuários

$pull

db.users.updateMany({}, { $pull: { friends: "João" } })

Remover um valor de um campo de array
Remove o João do array de friends para todos os usuários

$currentDate

db.users.updateOne({ name: "Jonathan" }, { $currentDate: { date: true } })

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

Qualquer combinação dos itens abaixo pode ser adicionada ao final de qualquer operação de leitura

sort

db.users.find().sort({ name: 1, age: -1 })

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

db.users.find().limit(2)

Retorna apenas um número definido de documentos.
Retorna apenas os 2 primeiros usuários

skip

db.users.find().skip(4)

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

db.users.find().pretty()

Configura o cursor para exibir os resultados em um formato de fácil leitura.
Retorna todos os usuários.