Método aggregate()

Consultas ao texto

O método aggregate() do MongoDB calcula valores agregados para os dados em uma coleção ou visão. Sua definição é:

db.coleção.aggregate(pipeline, opções)

onde pipeline é uma sequência de operações, ou etapas de agregação de dados, e opções são opções adicionais que o método passa para o comando aggregate.

Agrupar os documentos por título, e mostrar os títulos que aparecem mais de uma vez, ordenados por quantidade e título
> db.pages.aggregate( [
...    {
...       $group: {
...          _id: "$title",
...          count: { $sum: 1 }
...       }
...    },
...    { $match: { count: { $gt: 1 } } },
...    { $sort: {  count: 1, "_id": 1} }
... ] );
{ "_id" : "6.1 Python", "count" : 2 }
{ "_id" : "6.2 Ruby", "count" : 2 }
{ "_id" : "6.3 PHP", "count" : 2 }
{ "_id" : "6.4 C", "count" : 2 }
{ "_id" : "Avenida Central", "count" : 2 }
{ "_id" : "Casa da Ópera", "count" : 2 }
{ "_id" : "Chafariz da Praça Quinze de Novembro", "count" : 2 }
{ "_id" : "Chafariz da Praça São Salvador", "count" : 2 }
{ "_id" : "Chafariz das Saracuras", "count" : 2 }
{ "_id" : "Cidade Nova", "count" : 2 }
{ "_id" : "Copacabana", "count" : 2 }
{ "_id" : "Igreja de São Francisco de Paula", "count" : 2 }
{ "_id" : "Igrejinha de Copacabana", "count" : 2 }
{ "_id" : "Morro da Viúva", "count" : 2 }
{ "_id" : "Ouro Preto", "count" : 2 }
{ "_id" : "Santa Luzia", "count" : 2 }
{ "_id" : "São Cristóvão", "count" : 2 }
{ "_id" : "São Roque", "count" : 2 }
{ "_id" : "São Sebastião", "count" : 2 }
{ "_id" : "Chafariz das Marrecas", "count" : 3 }
Type "it" for more
> it
{ "_id" : "Quinta da Boa Vista", "count" : 3 }
{ "_id" : "Floresta da Tijuca", "count" : 4 }
{ "_id" : "Largo da Carioca", "count" : 4 }
{ "_id" : "Canal do Mangue", "count" : 5 }
{ "_id" : "Passeio Público", "count" : 5 }
{ "_id" : "Jardim Botânico do Rio de Janeiro", "count" : 7 }