LookupOperation.newLookup () не может найти указанное имя коллекции - PullRequest
0 голосов
/ 13 января 2019

У меня полнофункциональное приложение для чтения / записи с весенней загрузкой из mongodb. Попытка реализовать поиск сейчас, однако приведенный ниже код не может найти коллекцию "project_following" и просто возвращает результат из коллекции "project". Когда я меняю имена коллекций, результаты инвертируются, указывая, что агрегация сама по себе работает, но не может найти коллекцию, упомянутую в "LookupOperation.newLookup () .from (" project_following "))"

Он успешно возвращает объект ProjectJoinSample.class, но данные из коллекции project_following не возвращаются.

Коллекция: project_following

{
    "_id" : "96e6c39c-be1f-4d22-9f05-957cb8d92c6b",
    "count" : 1,
    "userNames" : [ 
        "DE10210"
    ]
}

Проект

{
    "_id" : "96e6c39c-be1f-4d22-9f05-957cb8d92c6b",
    "userName" : "AB10210",
    "name" : "Super Fun Time Beer",
    "description" : "Beer for fun"
}

Config:

@Value("${com.mongodb.collection.project:project}")
private String projectCollectionName;

@Bean
public String projectCollectionName() {
    return this.projectCollectionName;
}

@Value("${com.mongodb.collection.project.following:project_following}")
private String projectFollowingCollectionName;

@Bean
public String projectFollowingCollectionName() {
    return this.projectFollowingCollectionName;
}

application.properties:

com.mongodb.collection.project=project
com.mongodb.collection.project.following=project_following

Код:

LookupOperation lookupOperation = LookupOperation.newLookup()                      
  .from("project_following"))
  .localField("_id")
  .foreignField("_id")
  .as("project_join");

Aggregation aggregation = Aggregation.newAggregation(Aggregation.match(Criteria.where("_id").is("96e6c39c-be1f-4d22-9f05-957cb8d92c6b")) , lookupOperation);

List<ProjectJoinSample> results = mongoTemplate.aggregate(aggregation, Project.class, ProjectJoinSample.class).getMappedResults();

Ожидаемый результат:

{
    "_id" : "96e6c39c-be1f-4d22-9f05-957cb8d92c6b",
    "userName" : "AB10210",
    "name" : "Super Fun Time Beer",
    "description" : "Beer for fun!",
    "project_join" : [ 
        {
            "_id" : "96e6c39c-be1f-4d22-9f05-957cb8d92c6b",
            "count" : 1,
            "userNames" : ["DE10210"]
        }
    ]
}

Фактический результат:

{
    "_id" : "96e6c39c-be1f-4d22-9f05-957cb8d92c6b",
    "userName" : "AB10210",
    "name" : "Super Fun Time Beer",
    "description" : "Beer for fun!"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...