У меня есть $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;
}