Operadores de MongoDB $ min, $ max e $ avg

Operadores de MongoDB $ min, $ max e $ avg
MongoDB é muito vasto em termos de ter diferentes operadores de uso especial. Esses operadores podem ser aplicados a cordas, números inteiros e outros tipos de valores ou campos. Existem também alguns operadores de comparação disponíveis, como os operadores MIN e Max. O operador MinGodb Min é usado para encontrar o menor valor em um campo especificado de uma coleção, enquanto o operador MongoDB Max é usado para encontrar o valor mais alto em um campo especificado de uma coleção. Junto com isso, o operador MongoDB AVG é fundido para calcular o valor médio de um campo especificado. Neste guia, discutiremos o uso de cada operador um por um.

Criar uma coleção

O “dB.O comando CreateCollection ("Order") "é empregado para fazer uma nova coleção em um banco de dados MongoDB. A coleção é nomeada "Ordem" neste caso. Quando o comando é executado, a saída é "ok: 1". Isso indica que a coleção é efetivamente criada. O campo "OK" na saída é um indicador de status que retorna um valor de 1 se a operação for bem -sucedida e um valor de 0 se não for. É importante observar que, se uma coleção com o mesmo nome já existir no banco de dados, o comando retornará um erro.

Teste> dB.CreateCollection ("Ordem")
ok: 1

Insira os documentos

O “dB.Ordem.InsertMany () "Comando insere vários documentos na coleção" Order "no banco de dados" Test ". Os documentos inseridos são uma variedade de objetos que contêm campos de "id", "título" e "preço". Os documentos contêm os mesmos valores para os campos de "título" em alguns registros e contém registros exclusivos no campo "Price". A saída do comando é um documento que confirma que a inserção é reconhecida (reconhecida: True) e mostra os objetos únicos que são atribuídos a cada um dos documentos inseridos.

Teste> dB.Ordem.InsertMany ([id: 1, título: "Soap", preço: 44, id: 2, título: "shampo", preço: 94, id: 3, title: "facewash", preço: 120 , id: 4, título: "Soap", preço: 65, id: 5, título: "shampo", preço: 78]))

reconhecido: verdadeiro,
inserdids:
'0': objectId ("63C4EEC7AC8011ECC27D7A40"),
'1': objectId ("63C4EEC7AC8011ECC27D7A41"),
'2': objectId ("63C4EEC7AC8011ECC27D7A42"),
'3': objectId ("63C4EEC7AC8011ECC27D7A43"),
'4': objectId ("63C4EEC7AC8011ECC27D7A44")

Exibir os registros

O “dB.Ordem.O comando find () ”é executado no shell do MongoDB e é usado para recuperar todos os documentos na coleção“ Ordem ”. Os aparelhos vazios e encaracolados indicam que nenhum critério de consulta específico é usado para filtrar os documentos; portanto, todos os documentos da coleção são retornados. A saída do comando é uma lista de objetos JSON, cada um representando um documento na coleção "Order".

Teste> dB.Ordem.encontrar()
[[
_id: objectId ("63C4EEC7AC8011ECC27D7A40"), ID: 1, Título: 'Soap', Preço: 44,
_id: objectId ("63C4EEC7AC8011ECC27D7A41"), ID: 2, Título: 'Shampo', Preço: 94,
_id: objectId ("63C4EEC7AC8011ECC27D7A42"), ID: 3, Título: 'FaceWash', preço: 120,
_id: objectId ("63C4EEC7AC8011ECC27D7A43"), ID: 4, Título: 'Soap', Preço: 65,
_id: objectId ("63C4EEC7AC8011ECC27D7A44"), ID: 5, Título: 'Shampo', Preço: 78
]

Exemplo 1: Operador MongoDB $

No primeiro exemplo deste artigo, discutiremos o uso do operador "Min" com a ajuda de ilustrações simples do MongoDB. O comando a seguir usa a função agregada do MongoDB para agrupar os documentos na coleção "Order" pelo campo "Title". Em seguida, calcula o "preço" mínimo em cada grupo. O primeiro argumento que é passado para a função agregada é uma variedade de estágios de pipeline. Nesse caso, existe apenas um estágio de pipeline que usa o operador de grupo $ para agrupar os documentos pelo campo "Title" que é especificado como o campo "_id" no operador de $ Group Operator. O operador também calcula o "preço" mínimo em cada grupo e o atribui ao campo "MinPrice".

A saída resultante é uma variedade de objetos, com cada objeto representando um grupo de documentos com o mesmo campo "título". A saída mostra que existem três grupos de documentos com diferentes campos de "título" - "Soap", "Shampoo" e "Facewash". O preço mínimo para cada grupo é 44, 78 e 120, respectivamente.

Teste> dB.Ordem.agregado ([$ Group: _id: "$ title", MinPrice: $ min: "$ price"]))
[[
_id: 'Soap', MinPrice: 44,
_id: 'Shampo', MinPrice: 78,
_id: 'FaceWash', MinPrice: 120
]

Exemplo 2: Operador MongoDB $ max

Aqui estão alguns exemplos para discutir e usar o operador “Max” em MongoDBB. A instrução anexada usa a função agregada do MongoDB para agrupar a coleção de pedidos pelo campo "Title". Dentro do grupo, ele cria dois novos campos: "PricewithTax" e "MaxPrice". O campo "PricewithTax" usa o operador $ max para encontrar o valor máximo do resultado do operador $ add. O operador $ add adiciona 10 ao campo "Preço" para cada documento no grupo. Isso significa que o campo "PricewithTax" tem o maior valor de campo "preço" mais 10 para cada grupo de documentos com o mesmo "título".

O campo "MaxPrice" usa o operador $ max para encontrar o valor máximo do campo "Preço" para cada grupo de documentos com o mesmo "título". A saída do comando é uma variedade de documentos que mostram o "título", "PriceWithTax" e "MaxPrice" campos para cada grupo de documentos na coleção de pedidos. Os documentos são ordenados pelo campo "Título". Por exemplo, o primeiro documento da saída mostra que o "título" é "shampo", o "PriceWithTax" é 104 (o maior valor de campo de "preço" mais 10 para todos os documentos com o "título" de "shampo"), E o "MaxPrice" é 94 (o maior valor de campo de "preço" para todos os documentos com o "título" de "Shampo").

Teste> dB.Ordem.agregado ([$ Group: _id: "$ title", PriceWithTax: $ max: $ add: ["$ preço", 10], maxPrice: $ max: "$ preços"] )
[[
_id: 'Shampo', PriceWithTax: 104, MaxPrice: 94,
_id: 'FaceWash', PriceWithTax: 130, MaxPrice: 120,
_id: 'Soap', PriceWithTax: 75, MaxPrice: 65
]

Exemplo 3: Operador MongoDB $ AVG

Em nossa última ilustração deste guia, cobrimos o operador “AVG” do MongoDB para descobrir o valor médio de um campo específico de coleção. A função agregada do MongoDB é usada para agrupar os documentos na coleção "Order" por seu campo "Título". Dentro de cada grupo, ele calcula o valor médio do "preço" e cria um novo campo chamado "avgprice" para armazenar esse valor. O resultado deste comando é uma variedade de objetos, com cada objeto representando um grupo de documentos com o mesmo valor de "título". O objeto contém o valor do "título" como o campo "_id" e o valor médio de "preço" calculado como o campo "avgprice".

Nesse caso, existem três grupos: "Soap", "Shampo" e "Facewash". O preço médio do grupo "sabão" é 54.5. O preço médio do grupo "shampo" é 86. E o preço médio do grupo "Facewash" é 120, como segue:

Teste> dB.Ordem.agregado ([$ Group: _id: "$ title", avgprice: $ avg: "$ price"])
[[
_id: 'Soap', avgprice: 54.5,
_id: 'shampo', avgprice: 86,
_id: 'facewash', avgprice: 120
]

Conclusão

A introdução de nosso artigo explica os usos e diferenças dos três operadores muito comuns e mais usados ​​em MongoDB - os operadores Min, Max e AVG. Ao fazer tudo com os exemplos, explicamos os métodos para usar esses operadores em três ilustrações separadas. A primeira ilustração explica o operador do min, a segunda ilustração explica o "max", enquanto a terceira ilustração explica o uso do operador "AVG". Se você tem uma coleção de documentos que representa alguns valores numéricos, você pode experimentar os operadores MIN, Max e AVG para encontrar os valores mais baixos, mais altos e médios.