Non puoi farlo usando @Query
. Altre possibili alternative sono
-
Crea due metodi nella classe Repository. Uno che accetta solo id e un altro che accetta id e altri argomenti. E nella tua classe di servizio, puoi decidere quale chiamare in base ai dati in mano. (non scalabile)
-
Usa QueryDsl. Con questo puoi creare criteri di ricerca basati sui dati che hai in modo dinamico. Alcuni link utili
https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#core.extensions.querydsl
http://www.baeldung.com/queries-in -spring-data-mongodb - Puoi usare
Example
. Qui è il link per la documentazione.(Questo ha alcune limitazioni)
Nella mia esperienza personale, l'utilizzo di QueryDsl è il modo migliore per affrontare questi casi e può essere facilmente esteso per ulteriori modifiche ai requisiti.