MongoDB $Max Operador

Mongodb Max Operador



O MongoDB criou muitos operadores para executar transações de finalidade especial, como atualizar os registros, adicionar um novo registro e exibir os registros sob uma determinada condição. Um desses operadores é o operador “$max” que é usado para verificar o maior valor no registro. Além disso, podemos usá-lo para atualizar o menor valor com um novo valor maior depois de compará-los na instrução de função “update”. O outro uso do operador “$max” é agrupar e exibir os registros de uma determinada coleção de forma que possa exibir apenas o maior valor, ignorando o menor valor quando houver alguns registros duplicados no banco de dados. Neste guia, usaremos exemplos de consulta simples para discutir os usos mencionados anteriormente do operador “$max” no utilitário de linha de comando MongoDB em nossa plataforma Windows.

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 “data” que já deve estar criada. Para criar esta coleção, devemos adicionar alguns registros diretamente sem o uso de qualquer instrução “criar”. A instrução insert é suficiente para criar uma coleção e adicionar os registros nela. Usamos a função “insertMany” na consulta para adicionar quatro registros, cada um com 4 campos de tipos diferentes.

teste > db.data.insertMany ( [ { 'Eu iria' : 1 , 'Nome' : 'Bravo' , 'Salário' : 65000 , 'Era' : 44 } ,
... { 'Eu iria' : 2 , 'Nome' : 'Estêvão' , 'Salário' : 77000 , 'Era' : 55 } ,
... { 'Eu iria' : 3 , 'Nome' : 'Maria' , 'Salário' : 42000 , 'Era' : 27 } ,
... { 'Eu iria' : 4 , 'Nome' : 'Falcão' , 'Salário' : 58000 , 'Era' : 33 } ] )







O comando de inserção é bem-sucedido e a mensagem de saída mostra que os registros foram 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 da função “find()” no MongoDB Cli seguida da função “forEach()”, tomando o argumento printjson para exibir um resultado no formato JSON. O resultado exibido no shell mostra um total de 4 documentos na coleção, que são mostrados na seguinte imagem de saída:



teste > db.data.find ( ) .para cada ( printjson )





Vamos experimentar o operador “$max” no comando update do MongoDB para modificar os registros já inseridos. Assim, o updateOne() é usado aqui apenas para modificar um único registro da coleção “data” como um registro específico onde o campo “id” tem valor “2”. O operador “$max” é aplicado ao campo “Salary” da coleção “data” para verificar se o campo “Salary” possui um valor maior que 55000. Caso contrário, atualize o registro com 55000. O resultado de saída para isso A consulta da função updateOne() que mostra uma contagem de modificação “0” como registro “2” tem menos de 55.000 valor de salário.

teste > db.data.updateOne ( { Eu iria: 2 } , { $max : { Salário: 55000 } } )



Após essa atualização, tentamos a mesma consulta de função “find()” para exibir o resultado modificado no shell de linha de comando do MongoDB. Mas obtemos a mesma saída que obtínhamos antes de usar a instrução “update”. Não houve alteração porque o valor de 77.000 é maior que 55.000.

teste > db.data.find ( ) .para cada ( printjson )

Vamos tentar a mesma consulta updateOne() mais uma vez com uma pequena modificação. Desta vez, tentamos o valor maior que é “85000” do que o valor “77000” que já reside no campo “Salário” da coleta de “dados” para fazer a diferença em nossa saída. A saída mostra a contagem de modificação “1” desta vez, pois o valor “85000” substitui o valor já residente de “77000” no campo após a comparação ter acontecido apenas por causa do operador “$max” nesta consulta.

teste > db.data.updateOne ( { Eu iria: 2 } , { $max : { Salário: 85000 } } )

Depois de substituir com sucesso 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 foi atualizado com sucesso ou não. A saída mostra que o valor no campo “Salário” de um 2º registro desta coleção está perfeitamente atualizado.

teste > db.data.find ( ) .para cada ( printjson )

Exemplo 2:

Vamos pular para outro exemplo para fazer uso do operador “$max” no MongoDB. Desta vez, descartamos o operador “$max” para agrupar e exibir os registros exclusivos de uma coleção se houver duplicatas para os mesmos valores de campo. Para isso, inserimos mais 2 registros na coleção “dados” de um banco de dados “teste”. Esses registros contém os 2 valores iguais no campo “Nome” que também estão nos 4 registros já inseridos e os demais são diferentes. Para inserir os registros, utilizamos a mesma instrução “db” que contém nela a função “insertMany” para que a coleção “data” seja atualizada.

teste > db.data.insertMany ( [ { 'Eu iria' : 5 , 'Nome' : 'Bravo' , 'Salário' : 35000 , 'Era' : Quatro cinco } ,
{ 'Eu iria' : 6 , 'Nome' : 'Falcão' , 'Salário' : 67000 , 'Era' : 33 } ] )

A instrução é executada com sucesso.

Agora que os 2 novos registros foram adicionados, você também pode exibi-los usando a mesma função “find” na instrução “db” seguida da função “forEach”. A seguinte saída de exibição na imagem mostra os 2 novos registros no final desta coleção:

teste > db.data.find ( ) .para cada ( printjson )

Depois de exibir os 6 registros de coleta de “dados”, estamos prontos para executar a função de agregação nele. Portanto, a função “agregada” é utilizada na consulta listada a seguir. Com esta função, utilizamos o operador “$group” para agrupar o registro de uma coleção de “dados” de acordo com os nomes únicos do campo “id” e do 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 Salário” de acordo com os nomes duplicados no campo “Nome” que é usado como “id” para que este agrupamento seja exibido. Um total de 4 registros são exibidos. O menor valor (dos registros duplicados) é ignorado enquanto o maior valor é exibido.

db.data.aggregate ( [ { $ grupo : { _Eu iria: ' $Nome ' , Salário: { $max : ' $salário ' } } } ] )

Conclusão

O primeiro parágrafo deste guia ajuda você a entender a importância dos operadores que são usados ​​no MongoDB, especialmente o operador “$max” e seu uso no shell do MongoDB. Este guia contém dois exemplos baseados em comandos relacionados ao operador “$max” para demonstrar sua finalidade. Seguindo as 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 por meio do operador “$max”.