Как написать этот запрос агрегации на Mongodb (Spring) - PullRequest
0 голосов
/ 16 декабря 2018

Я испробовал много методов, но я не знаю, как заставить его работать на Spring MVC: /, я прикрепляю свой запрос и мои объекты Json к MongoDB, я читаю множество веб-страниц без посторонней помощи, я неНе понимаю, как это сделать, пожалуйста, помогите мне.

MongoDB:

db.denuncia.aggregate([
  { $project: { "estadosDenuncia": { $arrayElemAt: ['$estadosDenuncia', -1] } } },
  { $match: { 'estadosDenuncia.estado': 'Proceso' } },
    {
      $count: "Proceso"
    }
]);

Json:

{
    "_id" : ObjectId("5c1073b76c22a6052254bf79"),
    "nombreColegio" : "LICEO POLITECNICO PARTICULAR HANNOVER",
    "codigo" : "gTMwIjMERHcyMlMElTMwBnNzJjVuRzQxMjUyMjTyckb4QSRPl0T=",
    "rut" : 17836217,
    "dv" : "8",
    "fechaCreacion" : ISODate("2018-12-12T02:34:31.170Z"),
    "nombres" : "Alejandro",
    "apellidopate" : "Burgos",
    "apellidomate" : "Cartagena",
    "correo" : "alejandro.burgos.c@gmail.com",
    "telefono1" : "993494291",
    "nivelCurso" : "4 Medio",
    "letraCurso" : "E",
    "detalleDenuncia" : "PruebaSADDSADASAD  AD DK DS DAKK DSDS .",
    "rbdColegio" : 9897,
    "respuestas" : [ 
        {
            "sospechas" : null,
            "pregunta15" : null,
            "pregunta16" : null,
            "pregunta13" : null,
            "pregunta14" : null,
            "datos" : null,
            "pregunta1" : "a",
            "pregunta11" : null,
            "pregunta12" : null,
            "pregunta10" : null,
            "pregunta5" : null,
            "pregunta4" : null,
            "detalles" : null,
            "pregunta3" : "a",
            "pregunta2" : "a",
            "pregunta9" : null,
            "pregunta8" : null,
            "pregunta7" : null,
            "pregunta6" : null
        }
    ],
    "estadosDenuncia" : [ 
        {
            "estado" : "Pendiente",
            "fecha" : ISODate("2018-12-12T02:34:31.157Z"),
            "usuario" : "5b7ce5178eb2c00970bfa05b",
            "comentario" : "Ingreso de denuncia al sistema."
        }, 
        {
            "estado" : "Proceso",
            "fecha" : ISODate("2018-12-15T00:00:00.157Z"),
            "usuario" : "5b7ce5178eb2c00970bfa05b",
            "comentario" : "Denuncia en revisión."
        }
    ],
    "_class" : "cl.adatos.application.convesapp.models.Denuncia"
}

С уважением.

Алехандро Б.

1 Ответ

0 голосов
/ 19 декабря 2018

Я нашел решение самостоятельно, надеюсь, кому-то оно может пригодиться.

public String totalDenunciasEstadisticas() {
    ProjectionOperation proj = project().and("estadosDenuncia").arrayElementAt(-1).as("last");
    GroupOperation contar = Aggregation.group("last.estado").count().as("cantidad");

    Aggregation aggregate = Aggregation.newAggregation(proj, contar);

    AggregationResults<Denuncia> orderAggregate = mongoTemplate.aggregate(aggregate,
            "denuncia", Denuncia.class);

    return orderAggregate.getRawResults().toJson();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...