Operações CRUD no MongoDB: tutorial com exemplos
Publicados: 2020-02-05Com a evolução contínua da web, estamos vendo agora como o MongoDB e outros bancos de dados de objetos de documentos estão surgindo como alternativas aos bancos de dados convencionais baseados em SQL. Existem várias vantagens que esses bancos de dados de objetos de documentos têm sobre os bancos de dados SQL, e as mais proeminentes de todos esses benefícios incluem escalabilidade e agilidade.
É importante observar que os dados no MongoDB são armazenados no formato de documentos JSON (BSON) codificados em binário. Este formato pode ter um requisito de manter matrizes de documentos incorporados ou valores para esse assunto. Um documento forma um registro no MongoDB, que é uma estrutura criada a partir de pares de valor e campo.
Vamos agora discutir as operações de criação, atualização, recuperação e exclusão ou operações CRUD no MongoDB. Essas funções podem ser amplamente classificadas como funções de modificação de dados no MongoDB. Estes só podem ser usados para uma única coleção. Insert é uma função no MongoDB que pode ser usada para adicionar dados ao banco de dados.
Índice
Lista de operações CRUD no MongoDB
1. Criando Documentos
Como os objetos são criados usando o MongoDB? O MongoDB usa BSON – uma representação binária de JSON – para seu armazenamento. Portanto, é bastante fácil entender que métodos usados para realizar diferentes operações no banco de dados têm algo a ver com JavaScript. Vamos criar um usuário e uma coleção de usuários. Também é importante observar que tabelas em SQL são equivalentes a coleções em MongoDB.
db.users.save({name:”Mike”, job:”doutor”,email:”[email protected]”})
Este exemplo usa o MongoDB save() para salvar os dados na coleção.
2. Inserindo Documentos
- Inserção em lote : Esta função permite adicionar uma lista de documentos ao mesmo tempo a um banco de dados. Um lote, em um determinado momento, pode ter centenas ou até milhares de documentos. Com a capacidade de inserir vários documentos, esta função funciona muito mais rápido do que outras funções de inserção. Uma inserção em lote não precisa que você gere solicitações individuais para centenas ou milhares de documentos. Em vez disso, funciona como uma solicitação TCP (Transmission Control Protocol). O tempo gasto durante as inserções é sempre significativamente menor, pois não há atividade de processamento de cabeçalho envolvida. Todo documento que deve ser inserido carrega um cabeçalho que transmite ao banco de dados a operação que precisa ser realizada. Principalmente, as inserções em lote são usadas para armazenar dados de sensores e logs do servidor.
- Mongoimport : Mongoimport é uma ferramenta de linha de comando que é usada no lugar da inserção em lote para dados essenciais do MySQL, Oracle ou qualquer outro Sistema de Gerenciamento de Banco de Dados Relacional (RDBMS). Há momentos em que pode ser necessário fazer alterações nos documentos – adicionar um ID personalizado – antes de armazená-lo no MongoDB. Outra coisa importante que você deve saber é que o MongoDB só aceita mensagens de até 16 MB. Assim, a inserção em lote coloca uma restrição no número de mensagens que pode ter.
- Inserção em massa não ordenada: Nesta função, o MongoDB grava operações sem seguir nenhuma ordem. No caso de ocorrer um erro, continuará com as operações de gravação que ficam sem interrupção. O MongoDB forma um grupo de operações não ordenadas enquanto as executa. O MongoDB também pode buscar aprimoramento de desempenho reordenando as operações listadas antes da execução. Assim, os aplicativos não precisam depender de uma sequência ao considerar essa função para inserção em massa. Bulk.getOperations() pode ser usado para ver como o MongoDB agrupa um conjunto de operações e as executa. Este comando pode ser usado para adicionar três documentos ao mesmo tempo, mas sem qualquer ordem.
- Inserção em massa ordenada: Nesta função, o MongoDB segue uma sequência ao escrever operações. Um erro durante qualquer operação de gravação faz com que o MongoDB não execute outras operações de gravação. As operações ordenadas são agrupadas considerando sua continuidade e tipo. As operações ordenadas adjacentes pertencentes à mesma classe são agrupadas.
Por exemplo, se uma lista ordenada tiver uma operação de inserção seguida de uma operação de exclusão seguida de duas operações de atualização, o MongoDB criará três grupos para empilhá-los. O grupo um consistirá em uma operação de inserção. O segundo grupo terá uma operação de exclusão. O terceiro grupo juntará as duas operações de atualização.

Espera-se que as edições futuras do MongoDB lidem adequadamente com esse comportamento. Cada grupo de listas em massa ordenadas não pode ter mais de 1.000 operações. Caso o número ultrapasse esse limite máximo, o MongoDB cria grupos menores de 1000 operações ou menos, para aderir a esse limite. Portanto, se houver 7.000 operações em massa ordenadas, haverá sete grupos, cada um consistindo em 1.000 operações em massa. Para ver como o agrupamento e a execução são feitos, primeiro execute o comando de inserção em massa e, em seguida, use o comando Bulk.getOperations. Este comando pode ser usado para adicionar três documentos em ordem.

3. Recuperando/lendo Documentos
Cada consulta no MongoDB é direcionada a documentos específicos. O MongoDB identifica documentos com base na condição definida em uma consulta e, em seguida, retorna esses documentos ao destino pretendido. Uma consulta de recuperação de documento pode ter uma projeção que mencione condições ou critérios que correspondam aos campos do documento que precisam ser retornados.
As consultas podem ser modificadas para colocar saltos, limites e ordens de classificação.
Vamos agora discutir como a condição de igualdade é especificada. Use o comando findOne() para identificar o primeiro registro de um documento. Para exibir os resultados no formato adequado, você pode usar o método pretty.
Use a consulta db.items.find().pretty() para identificar todos os documentos listados em uma coleção e exibi-los em um formato padronizado. Você pode usar uma consulta vazia para selecionar todos os documentos – db.items.find( {} ) – essa consulta tem uma cláusula de consulta vazia no final – para identificar todos os documentos listados em uma coleção.
Não especificar o método find com um documento de consulta e usar uma consulta vazia fornecerá o mesmo resultado. Portanto, as consultas db.items.find( {} ) e db.items.find() são equivalentes em termos do resultado para o qual são usadas.
Você pode manipular a consulta e usar o método de cursor de consulta enquanto o método de contagem permite descobrir o número de documentos em uma coleção que correspondem à sua consulta. db.items.count()
4. Atualizando Documentos
Você precisa usar o método update() para atualizar documentos no MongoDB. O método de atualização apresenta dois elementos importantes – consulta e atualização. O parâmetro de consulta vem primeiro, seguido pelo parâmetro de atualização. Aqui está um exemplo
db.users.update({nome:”Mike”}, {idade: 32})
No entanto, essa não é a maneira correta de atualizar um par de valores, que nesse caso é a idade. Com isso, você substituirá tudo no documento. A única coisa que permanecerá na era. Portanto, quando precisamos atualizar um único par de valores em todo o documento, precisamos usar algumas palavras-chave.
db.users.update({name: “Mike”}, { $set: { age: 28}})

Isso não substituirá nada. Você manteria todas as informações que o documento possui. Apenas o valor da idade será atualizado.
5. Remoção de Documentos
Use o método remove – db.courses.remove() – para remover documentos de uma coleção. Este comando removerá todos os documentos da coleção fornecida. O que ele não removerá são os índices e a própria coleção. Às vezes, o comando remove pode receber uma consulta como parâmetro. Se você deseja remover documentos que correspondam aos critérios mencionados na consulta, use o comando db.items.remove({“item”: “Pen”).
Use o comando db.items.remove({” item” : “Bag},1) para remover apenas um documento de uma coleção. Para remover todos os documentos, coleções e índices, use o comando db.courses.drop() (método drop).
Conclusão
Se você estiver interessado em saber mais sobre Big Data, confira nosso programa PG Diploma in Software Development Specialization in Big Data, projetado para profissionais que trabalham e fornece mais de 7 estudos de caso e projetos, abrange 14 linguagens e ferramentas de programação, práticas práticas workshops, mais de 400 horas de aprendizado rigoroso e assistência para colocação de emprego com as principais empresas.
Aprenda cursos de desenvolvimento de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.