«LookupOperation» всегда дает данные первой записи - PullRequest
0 голосов
/ 05 декабря 2018

Проблема: Всегда я получаю первую запись из второй таблицы (монго-документ).

Среда:

Документ UserCompany

@Document(collection = "userComp")
public class UserCompany {
    @Id
    private String id;
    @Field("comp_id")
    private String companyId;
    ...
    ...
    getters/setters

}  

Документ пользователя

@Document(collection = "user")
public class User {
    @Id
    private String id;
    @Field("fname")
    private String firstName;
    ....
    ....
    getters/setters
}

CompanyUsersDTO класс

public class CompanyUsersDTO {
    private String id;
    private String user_id;
    ...
    private User userDTO;

    getters/setters
}

Я вызываю a

public void getUsersDetails(String companyId) {
    LookupOperation lookupOperation = LookupOperation.newLookup().from("user").localField("userId").foreignField("id").as("userDTO"); //todo
    Aggregation aggregation = newAggregation(Aggregation.match(Criteria.where("comp_id").is(companyId)), lookupOperation);
    List<CompanyUsersDTO> userResult = mongoTemplate.aggregate(aggregation, "userComp", CompanyUsersDTO.class).getMappedResults();
    ...
    ...
}

Ожидаемый набор результатов: Получите результат UserCompanyустановить и получить правильные данные пользователя в соответствии с (UserCompany-> userId)

Здесь всегда я получаю сначала данные перекодировки в пользовательской таблице (монго-документ).Кажется, есть проблема в моем "LookupOperation".

Оцените ваше предложение / решение для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...