@Query
を使用してこれを達成することはできません 。他の可能な代替案は
-
リポジトリクラスに2つのメソッドを作成します。 idのみを受け取るものと、idおよびその他の引数を受け取るもの。また、サービスクラスでは、手元のデータに基づいて、どちらを呼び出すかを決定できます。 (スケーラブルではありません)
-
QueryDslを使用します。これにより、動的に持っているデータに基づいて検索条件を作成できます。役立つリンク
https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#core.extensions.querydsl
http://www.baeldung.com/queries-in -spring-data-mongodb Example
を使用できます 。 こちら ドキュメントへのリンクです。(これにはいくつかの制限があります)
私の個人的な経験では、QueryDslを使用することがこれらのケースに取り組むための最良の方法であり、要件をさらに変更するために簡単に拡張できます。