Сопоставить массив документов mongoDB с List в java, используя агрегат - PullRequest
0 голосов
/ 23 февраля 2019

Java API с mongo является новым для меня.

Я получаю нулевое значение для списка пользовательских объектов при сопоставлении результата агрегации.

Необработанный результат:

Document{{results=[Document{{_id=5c70d5ebd95400049800f32a, name=Flow2, project=5c6e5182a29be9045b7619c6, componentDetails=[Document{{_id=5c6e5197a29be9045b7619c8, name=Login, groupId=5c6e518da29be9045b7619c7, _class=com.webcomponents.react.models.Component, active=1}}, Document{{_id=5c6e51a2a29be9045b7619c9, name=Signup, groupId=5c6e518da29be9045b7619c7, _class=com.webcomponents.react.models.Component, active=0}}], projectDetails=Document{{_id=5c6e5182a29be9045b7619c6, name=PMT, _class=com.webcomponents.react.models.Project}}}}], ok=1.0}}

Класс потока - (структура сбора потоков)

@Id
private String id;
private String name;
private ObjectId project;
private List<ObjectId>components;

Агрегирование: AggregationResults groupResults = mongoTemplate.aggregate(agg, "flows", FlowModel.class);

Класс FlowModel -Этот класс содержит структуру результата:

private String id;
private String name;
private String project;
private List<Component>componentObjects;
private Project projectDetails;

Текущий вывод:

{
"status": "OK",
"statusCode": 200,
"message": "Success",
"data": {
    "id": "5c70d5ebd95400049800f32a",
    "name": "Flow2",
    "project": "5c6e5182a29be9045b7619c6",
    "componentObjects": null,
    "projectDetails": {
        "id": "5c6e5182a29be9045b7619c6",
        "name": "PMT"
        }
    }
}

Проблема в том, что я получаю нулевое значение для componentObjects , но когда я проверяю необработанный результатиспользуя метод getRawResults () , он показывает componentObjects как массив документов.Я поделился необработанным результатом выше.

Может кто-нибудь предложить, как сопоставить массив документов, который отображается в необработанном результате, со списком (где компонент является коллекцией) в Java?

Ожидаемый вывод:

{
    "status": "OK",
    "statusCode": 200,
    "message": "Success",
    "data": {
        "id": "5c70d5ebd95400049800f32a",
        "name": "Flow2",
        "project": "5c6e5182a29be9045b7619c6",
        "componentObjects": [
    {   
                "id": "5c70d5ebd95400049800f3d2”,
            "name": “comp1”,
    },
    {
        "id": "5c70d5ebd95400049800f3as”,
            "name": “comp2”,
    }],
        "projectDetails": {
            "id": "5c6e5182a29be9045b7619c6",
            "name": "PMT"
        }
    }
}
...