Проблема: Всегда я получаю первую запись из второй таблицы (монго-документ).
Среда:
Документ 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".
Оцените ваше предложение / решение для этого.