Du kan ikke opnå dette ved at bruge @Query . Andre mulige alternativer er
-
Opret to metoder i klassen Repository. En som kun tager id og en anden som tager id og andre argumenter. Og i din serviceklasse kan du bestemme, hvilken du skal ringe til, baseret på de data, du har. (Ikke skalerbar)
-
Brug QueryDsl. Hermed kan du oprette søgekriterier baseret på data du har dynamisk. Nogle nyttige links
https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#core.extensions.querydsl
https://www.baeldung.com/queries-in -spring-data-mongodb - Du kan bruge
Example. Her er linket til dokumentation.(Dette har nogle begrænsninger)
Efter min personlige erfaring er QueryDsl den bedste måde at tackle disse sager på, og den kan nemt udvides til yderligere ændringer i kravet.