Versiòn 0.13 incluye
Documentaciòn
https://avbravo.gitbooks.io/jmoordb/content/introduccion-agregation.html
El método filter soporta Builder directamente.
List<Articulo> list = articuloRepository.findBy(and(eq("activo","si"),eq("marca.idmarca",9)));
if (list == null || list.isEmpty()) {
System.out.println("->no hay articulos con esa condicion");
} else {
System.out.println("-> cantidad de articulos " + list.size());
}
Ejemplo:
Filtra por marca.idmarca = 9
List<Bson> builder = Arrays.asList(match(eq("marca.idmarca", 9)),
Documentaciòn
https://avbravo.gitbooks.io/jmoordb/content/introduccion-agregation.html
- findBy(Bson builder, Document sort)
El método filter soporta Builder directamente.
List<Articulo> list = articuloRepository.findBy(and(eq("activo","si"),eq("marca.idmarca",9)));
if (list == null || list.isEmpty()) {
System.out.println("->no hay articulos con esa condicion");
} else {
System.out.println("-> cantidad de articulos " + list.size());
}
Soporte de Agregacion
Ejemplo:
Filtra por marca.idmarca = 9
Agrupa por el campo activo
Suma el campo cantidad
calcula el promedio del costo
Lo guarda en una coleccion llamada view
List<Bson> builder = Arrays.asList(match(eq("marca.idmarca", 9)),
group("$activo", sum("total", "$cantidad"),
avg("promedio", "$costo")),
out("view"));
List<JmoordbResult> list = articuloRepository.aggregateFromBuilder(builder);
if (list == null || list.isEmpty()) {
System.out.println("No hay articulos con esa condicion");
} else {
list.forEach((a) -> {
System.out.println("_id " + a.get("_id") + " Total: " + a.get("total") + " Costo:" + a.get("promedio"));
});
}
Comments