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 ([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([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(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([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([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([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.