-3

我試圖在java中轉換mongo查詢,但java代碼無法正常工作,這將在組colums中給出空值。以上mongo查詢在shell中工作正常,如何使用灌溉在java代碼中進行轉換。mongodb聚合組適用於java中的多個colums

蒙戈查詢: -

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

Java代碼: - 在彈簧蒙戈分貝

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佣金費用」, 「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

階段需要可變ARGS。

嘗試

group("nameOfGLAccount", "transactionType")

,並添加transactionTypeTrialBalance POJO。