spring-data-mongodb icon indicating copy to clipboard operation
spring-data-mongodb copied to clipboard

Dynamic agregation pipeline from method parameter

Open chlegou opened this issue 4 years ago • 0 comments

I'm looking for dynamic @Aggregation pipeline affectation.

you know already that we could affect a string array to @Aggregation annotation like this:

@Aggregation({
        "{ $unwind : { path : $skills } }",
        "{ $group : { _id : $skills, names : { $push : $name } } }",
        "{ $project : { _id : 0, skill : $_id, names : 1 } }"
})
Flux<SkilledPeople> getSkilledPeople();

and also a string like this:

@Aggregation("{ $project : { _id : 0, skill : $_id, names : 1 } }")
Flux<SkilledPeople> getSkilledPeople();

peeking the old @query annotation, we could pass the query like this:

@Query("?0")
Page<Person> filter(Document document, Pageable pageable);

My question is, could we have similar approach link in @Query annotation?

@Aggregation("?0")
Flux<SkilledPeople> getSkilledPeople(String[] pipeline);

or like this?

@Aggregation("?0")
Flux<SkilledPeople> getSkilledPeople(List<String> pipeline);

stack question: https://stackoverflow.com/questions/69423466/dynamic-agregation-pipeline-from-method-parameter

chlegou avatar Oct 03 '21 09:10 chlegou