-3

Javaでmongoクエリを変換しようとしていますが、Javaコードが正しく動作しません。これはグループ列でnull値を返します。上記のmongoクエリは、シェルでうまく動作します。アグリゲーションを使用してJavaコードを変換する方法。mongodbアグリゲーショングループは、Javaの複数の列に適用されます

Mongoのクエリ -

db.journalEntryRevised.aggregate(
{ 
     $group : { 
      _id : {nameOfGLAccount:"$nameOfGLAccount",transactionType:"$transactionType"}, 
      calculatedBaseCurrencyAmount: { $sum:"$calculatedBaseCurrencyAmount" }, 
     } 
    } 

Javaコード: - ばねMongoのDBに

Aggregation aggregationOpningDrAccount = newAggregation(
      match(Criteria.where("enterpriseId").is(clientUser.getEnterpriseId())), 
      match(Criteria.where("jedate").lt(startDate)), 
      match(Criteria.where("fund").is(fund)), 
      match(Criteria.where("transactionType").is("DR")), 
      group("nameOfGLAccount").sum("calculatedBaseCurrencyAmount").as("calculatedBaseCurrencyAmount").first("transactionType").as("transactionType")); 
      AggregationResults openingDrAccountResult = mongoTemplate.aggregate(aggregationOpningDrAccount,"journalEntryRevised", TrialBalance.class); 
      List <TrialBalance>openBalanceDrAccount=openingDrAccountResult.getMappedResults(); 
+0

マッチ無しで試しましたか?それが動作するかどうかを確認し – Veeram

+0

はい、それは、出力を与える: - [ { "ID":ヌル、 "calculatedBaseCurrencyAmount":9561 }、 { "ID":ヌル、 "calculatedBaseCurrencyAmount":9571444 }、 を{ "ID":ヌル、 "calculatedBaseCurrencyAmount":1000 }、 { "ID":ヌル、 "calculatedBaseCurrencyAmount":1000 } –

+0

期待出力: - { "_id":{ "nameOfGLAccount": "897-Commission Expense"、 "transactionType": "CR" }、 "calculatedBaseCurrencyAmount":9561.0 } /* 2 */ { "_id":{ "nameOfGLAccount": "789-起因して/ブローカーから"、 "transactionType": "DR" }、 "calculatedBaseCurrencyAmount":9571444.0 } /* 3 */ { "_id":{ "nameOfGLAccount": "321投資証券、(有料)" 、 "transactionType": "CR" }、 "calculatedBas eCurrencyAmount ":1000.0 } –

答えて

0

Groupステージは、可変引数をとります。

group("nameOfGLAccount", "transactionType")

を試してみて、あなたのTrialBalance POJOにtransactionTypeを追加します。

関連する問題