$ lookup и агрегация в MongoDB и Spring-data - PullRequest
0 голосов
/ 02 сентября 2018


У меня есть $lookup операция, и я реализовал ее с помощью Spring. Моя проблема в том, что когда я запускаю его в оболочке, он работает нормально, но с Spring он не работает. Интересно то, что когда я добавляю $match в Spring (где я его реализовал), он работает. Но мне не нужно $match Мне просто нужно $lookup без $match. Пожалуйста, помогите мне.
Заранее спасибо.

Монго-запрос:

db.twitterconnection.aggregate([   
    { "$lookup": {
       "from": "twitteruser",
       "localField": "connection_id",
       "foreignField": "user_id",
       "as": "followers"
    }}
]);

Пружинная реализация:

public  List <TwitterResult> lookupOperation(){
    LookupOperation lookupOperation = LookupOperation.newLookup()
                        .from("twitteruser")
                        .localField("connection_id")
                        .foreignField("user_id")
                        .as("followers");

    //Aggregation aggregation = Aggregation.newAggregation(Aggregation.match(Criteria.where("user_id").is("1")) , lookupOperation);//If I use this then it's working fine. 
    Aggregation aggregation = Aggregation.newAggregation(lookupOperation);
    List<TwitterResult> results = (List<TwitterResult>) mongoTemplate.aggregate(aggregation, "twitterconnection", TwitterResult.class).getMappedResults();
    System.out.println("Obj Size " +results.size());
    System.out.println(" Results : "+results.toString());

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