11 consultas e operações do MongoDB que você deve conhecer

O MongoDB é um dos bancos de dados NoSQL mais desejados e admirados para desenvolvimento profissional. Sua flexibilidade, escalabilidade e capacidade de lidar com grandes volumes de dados o tornam a melhor escolha para aplicativos modernos. Se você deseja dominar as consultas e operações regulares do MongoDB, você está no lugar certo.

MUO VÍDEO DO DIA

ROLE PARA CONTINUAR COM O CONTEÚDO

Esteja você procurando recuperar e manipular dados com eficiência, implementar modelos de dados robustos ou criar aplicativos responsivos, adquirir uma compreensão profunda das consultas e operações comuns do MongoDB sem dúvida aprimorará suas habilidades.

1. Criar ou alternar bancos de dados

Criar um banco de dados localmente por meio do MongoDB Shell é simples, especialmente se você configurou um cluster remoto. Você pode criar um novo banco de dados no MongoDB com o comando use:

 use db_name 

Embora o comando acima crie um novo banco de dados, você pode usá-lo para alternar para um banco de dados existente sem criar um novo do zero.

2. Eliminar banco de dados

Primeiro, alterne para o banco de dados que deseja descartar usando o comando use como feito anteriormente. Em seguida, elimine o banco de dados usando o comando dropDatabase():

 use db_name
db.dropDatabase()

3. Crie uma coleção

Para criar uma coleção, mude para o banco de dados de destino. Use a palavra-chave createCollection() para criar uma nova coleção do MongoDB:

 db.createCollection("collection_name")

Substitua collection_name pelo nome de coleção escolhido.

  Verifique o comprimento da lista em Python em 3 etapas fáceis

4. Inserir documento em uma coleção

Ao enviar dados para uma coleção, você pode inserir um único documento ou uma matriz de documentos.

Para inserir um único documento:

 db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})

Você também pode usar o método acima para inserir uma matriz de documentos com um ID:

 db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])

Para inserir vários documentos de uma só vez, cada um com IDs separados, use a palavra-chave insertMany:

 db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])

5. Obtenha todos os documentos de uma coleção

Você pode consultar todos os documentos de uma coleção usando a palavra-chave find():

 db.collection_name.find()

O acima retorna todos os documentos dentro da coleção especificada:

Você também pode limitar os dados retornados a um número específico. Por exemplo, você pode usar o seguinte comando para obter apenas os dois primeiros documentos:

 db.collection_name.find().limit(2)

6. Filtrar documentos em uma coleção

Existem muitas maneiras de filtrar documentos no MongoDB. Considere os seguintes dados, por exemplo:

Se estiver consultando apenas um campo específico em um documento, use o método find:

 db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})

O acima retorna todos os documentos onde o valor de Likes é Wordle. Ele gera apenas os nomes e ignora o ID do documento.

Você também pode filtrar uma coleção por um fator numérico. Digamos que você queira obter os nomes de todos os usuários com mais de 21 anos, use o operador $gt:

 db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})

A saída se parece com isso:

Tente substituir find por findOne para ver o que acontece. No entanto, existem muitas outras palavras-chave de filtragem:

  • $lt: Todos os valores menores que o especificado.
  • $gte: Valores iguais ou maiores que o especificado.
  • $lte: Valores menores ou iguais ao definido.
  • $eq: Obtém todos os valores iguais ao especificado.
  • $ne: Todos os valores não são iguais ao especificado.
  • $in: Use isso ao consultar com base em uma matriz. Ele obtém todos os valores correspondentes a qualquer um dos itens na matriz. A palavra-chave $nin faz o oposto.
  Como se tornar um Millwright em 2022: o guia definitivo

7. Consultas de classificação

A classificação ajuda a organizar a consulta em uma ordem específica. Você pode classificar em ordem crescente ou decrescente. Lembre-se de que a classificação requer uma referência numérica.

Por exemplo, para classificar em ordem crescente:

 db.collection_name.find({"Likes":"Chess"}).sort({"Age":1})

Para classificar a consulta acima em ordem decrescente, substitua “1” por “-1”.

 db.collection_name.find({"Likes":"Chess"}).sort({"Age":-1})

8. Atualizar um documento

As atualizações do MongoDB requerem operadores atômicos para especificar como você deseja que a atualização seja feita. Aqui está uma lista de operadores atômicos comumente usados ​​que você pode emparelhar com uma consulta de atualização:

  • $set: adicione um novo campo ou altere um campo existente.
  • $push: Insere um novo item em um array. Emparelhe-o com o operador $each para inserir muitos itens de uma só vez.
  • $pull: Remove um item de um array. Use-o com $in para remover muitos itens de uma só vez.
  • $unset: remove um campo de um documento.

Para atualizar um documento e adicionar um novo campo, por exemplo:

 db.collection_name.updateOne({"Name":"Sandy"}, {"$set":{"Name":"James", "email":"[email protected]"}})

O acima atualiza o documento especificado como mostrado:

A remoção do campo de e-mail é direta com o operador $unset:

 db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})

Considere os seguintes dados de amostra:

Você pode inserir um item no campo de matriz de itens existente usando o operador $push:

 db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})

Aqui está a saída:

Use o operador $each para inserir vários itens de uma só vez:

 db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})

Aqui está a saída:

  Como detectar câmeras de vigilância ocultas com seu telefone

Conforme mencionado, o operador $pull remove um item de um array:

 db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})

Os dados atualizados têm a seguinte aparência:

Inclua a palavra-chave $in para remover muitos itens em uma matriz de uma só vez:

 db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }}) 

9. Excluir um documento ou um campo

A palavra-chave deleteOne ou deleteMany destrói um documento de uma coleção. Use deleteOne para remover um documento com base em um campo especificado:

 db.collection_name.deleteOne({"Name":"IDNoble"})

Se você deseja excluir muitos documentos com chaves em comum, use deleteMany. A consulta abaixo exclui todos os documentos que contenham Chess como seus Likes.

 db.collection.deleteMany({"Likes":"Chess"})

10. Operação de indexação

A indexação melhora o desempenho da consulta simplificando o número de documentos que o MongoDB precisa verificar. Geralmente, é melhor criar um índice nos campos que você consulta com mais frequência.

A indexação do MongoDB é semelhante a como você usa índices para otimizar consultas SQL. Por exemplo, para criar um índice ascendente no campo Nome:

 db.collection.createIndex({"Name":1})

Para listar seus índices:

 db.collection.getIndexes()

O acima é apenas um preâmbulo. Existem vários outros métodos para criar um índice no MongoDB.

11. Agregação

O pipeline de agregação, uma versão aprimorada do MapReduce, permite executar e armazenar cálculos complexos de dentro do MongoDB. Ao contrário do MapReduce, que requer a gravação do mapa e das funções de redução em funções JavaScript separadas, a agregação é direta e usa apenas métodos integrados do MongoDB.

Considere os seguintes dados de vendas, por exemplo:

Usando a agregação do MongoDB, você pode calcular e armazenar o número total de produtos vendidos para cada categoria da seguinte forma:

 db.sales.aggregate([{$group:{"_id":"$Section", "totalSold":{$sum:"$Sold"}}}, {$project:{"_id":0, "totalSold":1, "Section":"$_id"}}])

A consulta acima retorna o seguinte:

Consultas mestre do MongoDB

O MongoDB oferece muitos métodos de consulta, incluindo recursos para melhorar o desempenho da consulta. Independentemente da sua linguagem de programação, as estruturas de consulta acima são rudimentares para interagir com um banco de dados MongoDB.

Pode haver algumas discrepâncias nas sintaxes básicas, no entanto. Por exemplo, enquanto algumas linguagens de programação como Python reconhecem casos de cobra, outras, incluindo JavaScript, usam o caso de camelo. Certifique-se de pesquisar o que funciona para a tecnologia escolhida.