Sie können dies nicht mit @Query
erreichen . Andere mögliche Alternativen sind
-
Erstellen Sie zwei Methoden in der Repository-Klasse. Einer, der nur die ID akzeptiert, und der andere, der die ID und andere Argumente akzeptiert. Und in Ihrer Serviceklasse können Sie anhand der vorliegenden Daten entscheiden, welche Sie anrufen möchten. (Nicht skalierbar)
-
Verwenden Sie QueryDsl. Damit können Sie Suchkriterien basierend auf Daten, die Sie haben, dynamisch erstellen. Einige hilfreiche Links
https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#core.extensions.querydsl
http://www.baeldung.com/queries-in -spring-data-mongodb - Sie können
Example
verwenden . Hier ist der Link zur Dokumentation.(Dies hat einige Einschränkungen)
Nach meiner persönlichen Erfahrung ist die Verwendung von QueryDsl der beste Weg, um diese Fälle anzugehen, und es kann leicht für weitere Änderungen der Anforderungen erweitert werden.