Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

196
Visualizações
Controlador Mongo DB Java 3.x - Agrupar por consulta

Me gustaría aprender cómo implementar el group by consulta usando Mongo DB Java 3.x Driver Quiero agrupar mi colección a través de los nombres de usernames y ordenar los resultados por el count de resultados DESC .

Aquí está la consulta de shell que quiero implementar el equivalente de Java :

 db.stream.aggregate({ $group: {_id: '$username', tweetCount: {$sum: 1} } }, { $sort: {tweetCount: -1} } );

Aquí está el código Java que he implementado:

 BasicDBObject groupFields = new BasicDBObject("_id", "username"); // count the results and store into countOfResults groupFields.put("countOfResults", new BasicDBObject("$sum", 1)); BasicDBObject group = new BasicDBObject("$group", groupFields); // sort the results by countOfResults DESC BasicDBObject sortFields = new BasicDBObject("countOfResults", -1); BasicDBObject sort = new BasicDBObject("$sort", sortFields); List < BasicDBObject > pipeline = new ArrayList < BasicDBObject > (); pipeline.add(group); pipeline.add(sort); AggregateIterable < Document > output = collection.aggregate(pipeline);

El resultado que necesito es el recuento de documentos agrupados por nombre de username . countOfResults devuelve el número total de documentos que tiene la colección.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Debe intentar no usar tipos de objetos antiguos ( BasicDBObject ) con Mongo 3.x. Puedes probar algo como esto.

 import static com.mongodb.client.model.Accumulators.*; import static com.mongodb.client.model.Aggregates.*; import static java.util.Arrays.asList; Bson group = group("$username", sum("tweetCount", 1)); Bson sort = sort(new Document("tweetCount", -1)); AggregateIterable <Document> output = collection.aggregate(asList(group, sort));
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda