Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

195
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda