Se você é um usuário frequente de outros bancos de dados, como Oracle e SQL, deve ter uma idéia sobre a sintaxe das consultas que são usadas para atualizar os registros já inseridos nesses bancos de dados. O MongoDB também utiliza algumas consultas de atualização, mas essas consultas são bem diferentes em comparação com os outros bancos de dados. No MongoDB, as instruções de atualização utilizam o operador "$ set" do MongoDB para substituir especialmente o valor antigo por um novo valor ou adicionar um novo campo a um único registro. Este guia ajuda a usar todas essas consultas de função "Inserir" para atualizar um único campo ou vários campos de um registro usando o operador "$ set".
Exemplo 1:
Com a primeira ilustração do MongoDB, cobrimos o uso do operador "$ set" para atualizar os registros simples em um banco de dados. Para isso, tentamos a função "insert ()" do mongodb para adicionar um único registro de três campos de dados.
Teste> dB.novo.inserir ("id": 01, "nome": "pita", "idade": 30)
Depois de adicionar o primeiro registro único, usamos a função find () junto com a função "foreach ()" para exibir o valor inserido.
Teste> dB.novo.encontrar().foreach (printjson)
Agora, usamos a função updateOne () para atualizar o campo "Nome" do registro inserido usando o operador "$ set". Certifique -se de mencionar o campo "ID" como um campo único, especialmente quando você tem mais de um registro em um banco de dados para distinguir.
Teste> dB.novo.updateOne ("id": 01, $ set: "name": "Peter")
Depois de atualizar um registro usando o operador "$ set", tentamos a função "find ()" mais uma vez no shell do MongoDB para ver se a atualização funcionou ou não.
Teste> dB.novo.encontrar().foreach (printjson)
Acontece que a atualização é feita com sucesso pelo operador "set" do MongoDB.
Exemplo 2:
Depois de passar pelas ilustrações simples de atualizar os registros do MongoDB através do operador $ set, avançamos um passo à frente. Nesta ilustração, atualizamos os registros de matriz aninhados (documentos) de qualquer banco de dados que reside em MongoDBB. Para isso, nosso banco de dados deve ter pelo menos um registro desses que contém uma matriz ou registro do tipo documental. Portanto, o seguinte comando “insertone ()” do mongodb é utilizado no shell para adicionar um novo registro a um banco de dados de "teste". Este registro contém um total de 3 campos de dados. O campo "Data" é um tipo de documento e o campo "Edu" é uma matriz.
Teste> dB.teste.insertone (id: 01, dados: name: "johny", idade: 34, edu: ["matric", "fsc"])
Depois de adicionar um registro, adicionamos outro registro no banco de dados "teste" com o mesmo método na consulta de função insertone (). Ambos os registros são adicionados com sucesso.
Teste> dB.teste.insertone (id: 02, dados: name: "elsa", idade: 29, edu: ["fsc", "bs"])
Agora que esses registros são adicionados, vamos verificá -los em nosso mongodb usando a função find () junto com a função foreach (), tomando o "printjson" como um argumento para apresentar os dados do banco de dados no formato json. Dois registros são exibidos que contêm matriz e documento.
Teste> dB.teste.encontrar().foreach (printjson)
Exemplo 3:
Agora, atualizamos o segundo registro do banco de dados "teste" que é adicionado primeiro através do operador "set" do MongoDBB. Portanto, a função de "atualização" é lançada na CLI do MongoDB para esse fim. O operador "$ set" é usado aqui para atualizar o campo "Data" deste registro. Para atualizar o campo em particular, certifique -se de atualizar todos os seus campos filhos, porque se você pular algum campo filho, ele o remove como uma atualização e não o mostrará novamente. Portanto, atualizamos os campos "nome" e "idade" do documento "Data" do segundo registro.
Teste> dB.teste.update (id: 2, $ set: data: name: "maya", idade: 33)
Depois de experimentar a consulta de comando find () no shell MongoDB para exibir o registro de um banco de dados, recebemos o registro atualizado definido pelo operador "$ set" em troca que é usado anteriormente. O nome "elsa" é substituído por "maya" e a idade "29" é substituída por "33". Você pode ver na saída que o primeiro registro é intocado durante a atualização.
Teste> dB.teste.encontrar().foreach (printjson)
Dentro da demonstração anterior, atualizamos apenas o campo aninhado do tipo documental do registro de banco de dados "Test" através do operador "$ set". Agora, atualizamos o campo do tipo Array do mesmo banco de dados usando o operador "$ set" do MongoDBB. Usando da mesma maneira, utilizamos a função "UpdateOne" em vez da função "Atualizar" para atualizar um único registro - o primeiro registro do banco de dados "Test". Mencionamos o campo que é usado como "id" para um registro e tentamos o operador "$ set" para atualizar o campo "Data" do tipo document. Após a execução da consulta a seguir, o registro é atualizado.
Teste> dB.teste.updateOne (id: 1, $ set: data: name: "Paul", idade: 30, edu: ["fa", "PhD"])
Após esta atualização do operador "$ set", usamos a mesma função find () com a função foreach () para exibir o registro atualizado em nosso shell mongodb no formato json. Este 1st O registro é atualizado perfeitamente sem nenhum erro conforme a saída.
Teste> dB.teste.encontrar().foreach (printjson)
Existe outra maneira única de atualizar um registro de banco de dados de MongoDB. Dessa forma, inclui o uso de um personagem "DOT" com o nome do campo e seu campo aninhado para atualizar um campo infantil específico dentro do campo principal. O operador "$ set" é utilizado para atualizar o valor do campo "Idade" do campo "dados" principal do 1st Registro, de 30 a 28. Para isso, tentamos o formato específico da consulta updateOne () no operador "$ set" como "dados.Idade ”: 28.
Teste> dB.teste.updateOne (id: 1, $ set: "dados.Idade ": 28)
Após a atualização de um registro usando o método anterior, exibimos o registro atualizado.
Teste> dB.teste.encontrar().foreach (printjson)
Para atualizar uma matriz dentro de um registro, você precisa mencionar o número de índice de um registro específico após o caractere "DOT", juntamente com o valor a ser separado por ":" usando o operador "set".
Teste> dB.teste.update (id: 1, $ set: "dados.Idade ": 33", edu.1 ":" PhD ")
A atualização é refletida no banco de dados "teste". Encontramos o novo valor na coluna.
Teste> dB.teste.encontrar().foreach (printjson)
Conclusão
Este artigo ajuda você a usar o operador "$ set" enquanto trabalha no ambiente do MongoDB. Ele explica o uso do operador "$ set" na instrução de atualização do MongoDB dentro de sua introdução. Depois disso, três exemplos diferentes, mas muito fáceis de implementar, são eliminados para atualizar um campo simples de um valor, atualizar um campo com vários valores e um campo com valores do tipo Array em um banco de dados MongoDB usando o "$ set" operador.