私は(質問者として)MongoDBとStackOverflowの両方にかなり慣れていません。@Query アノテーション ( Count in Spring data mongodb repository )を使用して、Spring リポジトリから MongoDB の「カウント」プロジェクションを返す方法について、素晴らしい反応を見てきました。
基本的にカウントの例は次のようになります: @Query(value = "{'productDetails.productType': {$regex: ?0, $options: 'i'}, 'sourceDescriptor': ?1}", count = true)
...そして、メソッドは int を返します。同様のことをしたいのですが、返される int はカウントではなく合計です。@Query アノテーションは、sum() 操作をサポートするように作成されたようには見えませんが、それが必要です。
必要な結果を得るには、ドキュメントのコレクションを反復処理する必要があるのではないかと心配しています。
トランザクションのコレクションがあります (借方と貸方、正と負の金額など)。以下は、トランザクション データのシミュレーションです。
[{ "action" : "AWARD", "amount" : 9000, "notes" : "初期残高", "username" : "aa" }, { "action" : "PAYOUT", "amount" : 1800," notes" : "Earnings", "username" : "aa" }, { "action" : "WITHDRAWAL", "amount" : -5000, "notes" : "直接入金 /r#e#d#a#c# t#e#d/", "username" : "aa" }, { "action" : "AWARD", "amount" : 7000, "notes" : "初期残高", "username" : "bb" }]
リポジトリを使用して、特定のユーザー名のさまざまなトランザクションの正味 (合計) を取得したいと考えています。そして、可能であれば、すべての Mongo ドキュメントのリストを返さずに、それらを繰り返し処理して合計を取得したいと思います。
@Query アノテーションを使用してこれを行う方法はありますか?
これは私の最初の質問です。的外れでしたらご容赦ください。