Entenda as consultas e operações do MongoDB com a ajuda deste guia prático.
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.
Esteja você procurando recuperar e manipular dados com eficiência, implementar modelos de dados robustos ou criar aplicações, adquirir uma compreensão profunda das consultas e operações comuns do MongoDB, sem dúvida, aprimorará seu 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 usar comando:
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, mude para o banco de dados que deseja descartar usando o usar comando como feito anteriormente. Em seguida, solte o banco de dados usando o dropDatabase() comando:
use db_name
db.dropDatabase()
3. Criar uma coleção
Para criar uma coleção, mude para o banco de dados de destino. Use o criarColeção() palavra-chave para criar uma nova coleção do MongoDB:
db.createCollection("collection_name")
Substituir coleção_nome com o nome da coleção escolhida.
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 o inserirmuitos palavra-chave:
db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])
5. Obter todos os documentos de uma coleção
Você pode consultar todos os documentos de uma coleção usando o encontrar() palavra-chave:
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 encontrar método:
db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})
O acima retorna todos os documentos onde o valor de curtidas é 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 $gt operador:
db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})
A saída se parece com isso:
Tente substituir encontrar com encontrar um 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 superiores ao 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.
- $ em: use isso ao consultar com base em uma matriz. Ele obtém todos os valores correspondentes a qualquer um dos itens na matriz. O $nin palavra-chave faz o oposto.
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:
- $ definido: Adicione um novo campo ou altere um campo existente.
- $push: Inserir um novo item em uma matriz. Emparelhe com o $ cada operador para inserir muitos itens de uma só vez.
- $puxar: remove um item de uma matriz. Use-o com $ em para remover muitos itens de uma só vez.
- $desativado: 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:
Remover o campo de e-mail é simples com o $desativado operador:
db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})
Considere os seguintes dados de exemplo:
Você pode inserir um item no existente Unid campo de matriz usando o $push operador:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})
Aqui está a saída:
Use o $ cada operador para inserir muitos itens de uma só vez:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})
Aqui está a saída:
Como mencionado, o $puxar operador remove um item de uma matriz:
db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})
Os dados atualizados têm a seguinte aparência:
Incluir o $ em palavra-chave 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
O deleteOne ou deletarmuitos A palavra-chave descarta um documento de uma coleção. Usar 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 deletarmuitos em vez de. A consulta abaixo exclui todos os documentos que contêm Xadrez como deles curtidas.
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ê usar índices para otimizar consultas SQL. Por exemplo, para criar um índice ascendente no Nome campo:
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 criando 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 escrever o mapa e as funções de redução em separado funções JavaScript, 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.