Exemplo 1:
Começando com a ilustração para discutir e como o operador "$ max" funciona no shell do MongoDB, precisamos ter uma coleção chamada "dados" que já deve ser criada. Para criar esta coleção, devemos adicionar alguns registros diretamente sem o uso de qualquer instrução "Criar". A instrução de inserção é suficiente para criar uma coleção e adicionar os registros. Usamos a função "InsertMany" na consulta para adicionar quatro discos, cada um com 4 campos de diferentes tipos.
Teste> dB.dados.InsertMany (["id": 1, "Nome": "Bravo", "Salário": 65000, "Age": 44,
… "Id": 2, "Nome": "Stephen", "Salário": 77000, "Age": 55,
… "ID": 3, "Nome": "Maria", "Salário": 42000, "Age": 27,
… "Id": 4, "Nome": "Hawkin", "Salário": 58000, "Age": 33]))
O comando Insert é bem -sucedido e a mensagem de saída mostra que os registros são adicionados.
Depois de inserir os registros na coleção "dados" do nosso MongoDB, é hora de ver esses registros no shell. Assim, executamos a instrução de função "find ()" sobre a cli mongodb seguida pela função "foreach ()", levando o argumento Printjson para exibir um resultado no formato JSON. O resultado que é exibido no shell mostra um total de 4 documentos na coleção que são mostrados na seguinte imagem de saída:
Teste> dB.dados.encontrar().foreach (printjson)
Vamos experimentar o operador "$ max" no comando de atualização do mongodb para modificar os registros já inseridos. Assim, o UpdateOne () é usado aqui para modificar apenas um único registro de coleção "Data", como um registro específico em que o campo "ID" tem um valor de "2". O operador "$ max" é aplicado ao campo "Salário" da coleção "Data" para verificar se o campo "Salário" tem um valor que é maior que 55000. Caso contrário, atualize o registro com 55000. O resultado da saída para esta consulta de função updateOne () que mostra uma contagem de modificação "0" como registro "2" tem menos de 55000 valor salarial.
Teste> dB.dados.updateOne (id: 2, $ max: salário: 55000)
Após esta atualização, tentamos a mesma consulta de função "find ()" para exibir o resultado modificado no shell da linha de comando mongodb. Mas obtemos a mesma saída que recebemos antes de usar a instrução "Atualizar". Não houve mudança porque o valor 77000 é maior que 55000.
Teste> dB.dados.encontrar().foreach (printjson)
Vamos experimentar a mesma consulta updateOne () mais uma vez com uma pequena modificação. Desta vez, tentamos o maior valor que é "85000" do que o valor "77000" que já está residindo no campo "salário" da coleção "dados" para fazer a diferença em nossa saída. A saída mostra a contagem de modificação "1" desta vez, já que o valor "85000" substitui o valor já residente de "77000" no campo após a comparação ocorreu apenas por causa do operador "$ max" nesta consulta.
Teste> dB.dados.UpdateOne (id: 2, $ max: Salário: 85000)
Depois de substituir com êxito o menor valor de "77000" por um novo valor de "85000" através do operador "$ max" do MongoDB, finalmente usamos a função "find ()" na instrução "db" para verificar esta atualização, se é atualizado com sucesso ou não. A saída mostra que o valor no campo "salário" de um segundo registro nesta coleção é perfeitamente atualizado.
Teste> dB.dados.encontrar().foreach (printjson)
Exemplo 2:
Vamos pular para outro exemplo para fazer uso do operador "$ max" em MongoDB. Desta vez, lançamos o operador "$ max" para agrupar e exibir os registros exclusivos de uma coleção se houver alguma duplicata para os mesmos valores de campo. Para isso, inserimos mais 2 registros na coleção "Data" de um banco de dados de "teste". Esses registros contêm os dois mesmos valores no campo "Nome" que também estão nos 4 registros já inseridos e o restante são diferentes. Para inserir os registros, utilizamos a mesma instrução "db" que contém a função "InsertMany" para a coleção "Data" para ser atualizado.
Teste> dB.dados.InsertMany (["ID": 5, "Nome": "Bravo", "Salário": 35000, "Age": 45,
… "ID": 6, "Nome": "Hawkin", "Salário": 67000, "Age": 33]))
A instrução é executada com sucesso.
Agora que os 2 novos registros são adicionados, você também pode exibi -los usando a mesma função "Localizar" na instrução "db" seguida pela função "foreach". A saída da exibição a seguir na imagem mostra os 2 novos registros no final desta coleção:
Teste> dB.dados.encontrar().foreach (printjson)
Depois de exibir os 6 registros da coleção "dados", estamos prontos para executar a função agregada nela. Portanto, a função "agregada" é utilizada na seguinte consulta listada. Com esta função, utilizamos o operador "$ GRUPO" para agrupar o registro de uma coleção "dados" de acordo com os nomes exclusivos do campo "ID" e o campo "Salário". O operador "$ max" é aplicado ao campo "salário" dos registros para obter os valores máximos a serem exibidos. Obtenha o maior valor do campo de salário de acordo com os nomes duplicados no campo "Nome", que é usado como "id" para que esse agrupamento seja exibido. Um total de 4 registros são exibidos. O menor valor (dos registros duplicados) é ignorado enquanto o maior valor é exibido.
dB.dados.agregado ([$ Group: _id: "$ name", salário: $ max: "$ salary"]))
Conclusão
O primeiro parágrafo deste guia ajuda você a entender a importância dos operadores usados no MongoDB, especialmente o operador "$ max" e seu uso no shell MongoDB. Este guia contém dois exemplos baseados em comando relacionados ao operador "$ max" para demonstrar seu objetivo. Passando pelas ilustrações do MongoDB, você poderá realizar algumas transações úteis no banco de dados, seja sobre substituir um registro já existente por um novo valor ou exibir os registros, agrupando -os através do operador "$ max".