Agregação do grupo MongoDB

Agregação do grupo MongoDB
Agregação é o procedimento de extrair dados de uma coleção MongoDBB. Ele processa inúmeros documentos e fornece resultados estimados. A agregação em MongoDB possui vários operadores e métodos que realizam várias tarefas. Entre esses operadores, o operador de grupo $ agrupa os documentos para cada agrupamento exclusivo e os organiza de acordo com uma expressão que é definida. O operador do grupo é significativo em MongoDB, pois facilita uma ampla gama de manipulações de dados. A agregação do grupo $ no exemplo do MongoDB junto com diferentes acumuladores é fornecida abaixo.

Como a agregação de grupo funciona em MongoDB?

O operador de grupo $ deve ser usado para agrupar os documentos de entrada de acordo com a expressão _id especificada. Ele deve então retornar um único documento com os valores totais para cada grupo separado. Para começar com a implementação, criamos a coleção "livros" em MongoDBB. Após a criação da coleção "livros", inserimos os documentos associados aos diferentes campos. Os documentos são inseridos na coleção através do método insertMany () como a consulta a ser executada é mostrada abaixo.

> dB.Livros.InsertMany ([

_id: 1,
Título: "Anna Karenina",
Preço: 290,
Ano: 1879,
Order_status: "In-Stock",
Autor:
"Nome": "Leo Tolstoi"

,

_id: 2,
Título: "Para matar um Mockingbird",
Preço: 500,
Ano: 1960,
Order_status: "Fora do estoque",
Autor:
"Nome": "Harper Lee"

,

_id: 3,
Título: "Homem invisível",
Preço: 312,
Ano: 1953,
Order_status: "In-Stock",
Autor:
"Nome": "Ralph Ellison"

,

_id: 4,
Título: "Amado",
Preço: 370,
Ano: 1873,
order_status: "out_of_stock",
Autor:
"Nome": "Toni Morrison"

,

_id: 5,
Título: "As coisas desmoronam",
Preço: 200,
Ano: 1958,
Order_status: "In-Stock",
Autor:
"Nome": "Chinua Achebe"

,

_id: 6,
Título: "The Color Purple",
Preço: 510,
Ano: 1982,
Order_status: "Fora do estoque",
Autor:
"Nome": "Alice Walker"


]))

Os documentos são armazenados com sucesso na coleção "Livros" sem encontrar nenhum erro, porque a saída é reconhecida como "verdadeira". Agora, vamos usar esses documentos da coleção "Livros" para realizar a agregação "$ grupo".

Exemplo # 1: Uso de $ agregação do grupo

O uso simples da agregação do grupo $ é demonstrado aqui. A consulta agregada entra o operador "$ Group" primeiro e depois o operador "$ GRUPO" ainda leva as expressões para gerar os documentos agrupados.

> dB.Livros.agregar([
$ grupo: _id: '$ autor.nome'
]))

A consulta acima do operador do grupo $ é especificada com o campo "_id" para calcular os valores totais para todos os documentos de entrada. Então, o campo “_id” é alocado com o “$ autor.nome ”, que forma um grupo diferente no campo“ _id ”. Os valores separados de $ autor.O nome será retornado porque não calculamos nenhum valor acumulado. A execução da consulta agregada do grupo $ tem a seguinte saída. O campo _id tem valores do autor.nomes.

Exemplo # 2: Uso da agregação do grupo com o $ PUSH Accumulator

O exemplo da agregação de $ Group usa qualquer acumulador que já seja mencionado acima. Mas podemos usar os acumuladores na agregação de US $. Os operadores do acumulador são aqueles que são usados ​​nos campos de documentos de entrada, exceto aqueles que são "agrupados" em "_id". Vamos supor que queremos empurrar os campos da expressão para uma matriz, então o acumulador de "$ push" é chamado no operador "$ grupo". O exemplo ajudará você a entender o acumulador "$ push" do "$ Group" mais claramente.

> dB.Livros.agregar(
[[
$ Group: _id: "$ _id", ano: $ push: "$ ano"
]
).bonito();

Aqui, queremos agrupar a data do ano publicado dos livros fornecidos na matriz. A consulta acima deve ser aplicada para realizar isso. A consulta de agregação é fornecida com a expressão em que o operador "$ grupo" toma a expressão de campo "_id" e a expressão de campo "Ano" para obter o ano do grupo usando o $ push acumulador. A saída recuperada desta consulta específica cria a matriz de campos de ano e armazena o documento agrupado retornado dentro dela.

Exemplo # 3: Uso de agregação de grupo com o acumulador "$ min"

Em seguida, temos o acumulador "$ min" que é usado na agregação do grupo $ para obter o valor mínimo de correspondência de todos os documentos da coleção. A expressão de consulta para o acumulador de $ min é dada abaixo.

> dB.Livros.agregar([

$ grupo:
_eu ia:
Título: '$ título',
order_status: '$ order_status'
,
MinPrice: $ min: '$ price'


]))

A consulta tem a expressão de agregação "$ GROUP", onde agrupamos o documento para os campos "título" e "order_status". Em seguida, fornecemos o acumulador de $ min que agrupou os documentos, obtendo os valores mínimos de preços dos campos não agrupados. Quando executamos esta consulta de $ min de acumulador abaixo, ele retorna os documentos agrupados por título e Order_status em uma sequência. O preço mínimo aparece primeiro e o preço mais alto do documento é colocado último.

Exemplo # 4: use a agregação do grupo $ com o $ SUM Accumulator

Para obter a soma de todos os campos numéricos usando o operador de grupo $, a operação de acumulador de $ sum é implantada. Os valores não numéricos nas coleções são considerados por este acumulador. Além disso, estamos usando a agregação de $ Match aqui com a agregação do grupo. A agregação de Match $ aceita as condições de consulta que são fornecidas em um documento e passa o documento correspondente para a agregação do grupo $ que retorna a soma do documento para cada grupo. Para o acumulador de $ sum, a consulta é apresentada abaixo.

> dB.Livros.agregar([
$ Match: Order_status: 'In-Stock',
$ grupo: _id: '$ autor.Nome ', TotalBooks: $ sum: 1
])

A consulta acima da agregação começa com o operador $ Match, que corresponde a todos os "order_status" cujo status está "em estoque" e passou para o grupo $ como entrada. Em seguida, o operador do grupo $ possui a expressão de acumulador de $ sum, que gera a soma de todos os livros do estoque. Observe que o "$ sum: 1" adiciona 1 a cada documento que pertence ao mesmo grupo. A saída aqui mostrou apenas dois documentos agrupados que têm o "order_status" associado a "In-Stock".

Exemplo # 5: use a agregação do grupo $ com a agregação de classificação $

O operador de grupo $ aqui é usado com o operador "$ sort" que é usado para classificar os documentos agrupados. A consulta a seguir tem três etapas para a operação de classificação. Primeiro é o estágio $ da partida, depois o estágio de $ Group, e o último é o estágio de classificação $ que classifica o documento agrupado.

> dB.Livros.agregar([
$ MATCH: Order_status: 'fora do estoque',
$ grupo: _id: authorname: '$ autor.Nome ', TotalBooks: $ sum: 1,
$ STORN: Authorname: 1
]))

Aqui, buscamos o documento correspondente cujo "order_status" está fora de estoque. Em seguida, o documento correspondente é a entrada na fase $ do grupo que agrupou o documento com o campo "Authorname" e os "Totalbooks". A expressão do grupo $ está associada ao acumulador de $ sum ao número total de livros 'fora de estoque'. Os documentos agrupados são então classificados com a expressão de classificação $ em ordem ascendente como "1" aqui indica a ordem ascendente. O documento de grupo classificado na ordem especificado é obtido na saída a seguir.

Exemplo # 6: use a agregação do grupo $ para um valor distinto

O procedimento de agregação também agrupa os documentos por item usando o operador de grupo $ para extrair os valores distintos do item. Vamos ter a expressão de consulta desta afirmação em MongoDB.

> dB.Livros.agregado ([$ Group: _id: "$ title"])).bonito();

A consulta de agregação é aplicada à coleção de livros para obter o valor distinto do documento do grupo. O grupo $ aqui toma a expressão _id que gera os valores distintos, à medida que inserimos o campo "Title". A saída do documento do grupo é obtida após a execução desta consulta que possui o grupo de nomes de títulos contra o campo _id.

Conclusão

O guia teve como objetivo limpar o conceito do operador de agregação do grupo $ para agrupar o documento no banco de dados MongoDB. A abordagem agregada do MongoDB melhora os fenômenos de agrupamento. A estrutura de sintaxe do operador do grupo $ é demonstrada com os programas de exemplo. Além do exemplo básico das operadoras de grupo $, também empregamos esse operador com alguns acumuladores como $ push, $ min, $ sum e operadores como $ match e $ sty.