-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();
マッチ無しで試しましたか?それが動作するかどうかを確認し – Veeram
はい、それは、出力を与える: - [ { "ID":ヌル、 "calculatedBaseCurrencyAmount":9561 }、 { "ID":ヌル、 "calculatedBaseCurrencyAmount":9571444 }、 を{ "ID":ヌル、 "calculatedBaseCurrencyAmount":1000 }、 { "ID":ヌル、 "calculatedBaseCurrencyAmount":1000 } –
期待出力: - { "_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 } –