tl; dr
リポジトリとコントローラーのカスタム実装が必要になります。
詳細h3>
ここで言及しているさまざまな側面すべてで迷子にならないようにする必要があります。枝を下から上に解きほぐしてみます:
MongoDBスクリプトの実行
としてMongoDBでのスクリプトの実行に関するリファレンスドキュメント
状態(そしてあなたはすでに発見しました)、機能はby MongoTemplate
によって提供されます のScriptOperations
。したがって、そのAPIの使用方法は明確である必要があります。詳細については、Javadocを参照してください。
SpringDataリポジトリを介したスクリプトの実行
次に求めているのは、リポジトリの抽象化を通じてこれらのスクリプトを実行することです。ここでお風呂の水で赤ちゃんを捨てないようにするには、リポジトリの目的を理解していることを確認してください。リポジトリは、根底にある永続化メカニズムを公開せずに、骨材の根のコレクションとそれにアクセスすることをシミュレートします。 。 ExecutableMongoScript
のようなタイプを公開する リポジトリ上では、後者の特性が損なわれます。したがって、ここでの正しいアプローチは、Springデータリポジトリに関するリファレンスドキュメント
。
RESTを介して機能を公開する
質問のリポジトリクエリメソッド専用のリソースを公開するために、SpringDataRESTの機能を参照していると想定しています。 Spring Data RESTは現在、宣言型クエリメソッドのみを自動的に公開しています。これは主に、メソッド内で何が起こっているかを推測できないため、カスタム実装をサポートする正しいHTTPメソッドについて推論するのが難しいためです。
@RequestMapping
を使用してカスタムコントローラーを使用してカスタムリポジトリクエリメソッドを公開するための推奨される方法 目的に合わせて、リポジトリを呼び出し、PersistentEntityResourceAssembler
を使用します PersistentEntityResource
を生成するためにハンドラーメソッドに注入可能 戻る。