3

Spring Data Mongo 1.3.2-RELEASE でアグリゲーションを使用する場合、プロジェクトの操作に問題があります。Spring Data Mongo 1.3.1-RELEASE を使用している場合、同じ操作が正常に機能します。

まず、2 つのフィールドのみを射影し、それらの名前を x と y に変更して、ドキュメントを縮小します。次に、これら 2 つのフィールド (x、y) に対して、カウント操作 (xPerY という名前) を含むグループ操作を呼び出します。このグループ化の後、x および y と呼ばれるネストされていないフィールド (_id なし) の _id フィールドにネストされたこれら 2 つのフィールドを射影したいと考えています。その結果、xPerY、x、y のみで構成されるドキュメントを取得したいと考えています。次のコードは、1.3.1-RELEASE では正常に機能しましたが、1.3.2-RELEASE では機能しませんでした:

    AggregationOperation projectFirst = Aggregation.project( "x", "y" ).and( xField ).as( "x" ).and( yField ).as( "y" );
    AggregationOperation group = Aggregation.group( "x", "y" ).count( ).as( "xPerY" );
    AggregationOperation project = Aggregation.project( "xPerY", "x", "y" ).andExclude( "_id" );

    aggregation = Aggregation.newAggregation( projectFirst, group, project );

1.3.2-RELEASE では、フィールド x および y は集約後に値 0 を取得します。

1.3.2-RELEASE の AggregationOperation プロジェクトは、次の json を生成します: { "$project" : { "xPerY" : 1 , "x" : 1 , "y" : 1 , "_id" : 0}}

1.3.1-RELEASE の AggregationOperation プロジェクトは、次の json を生成します: { "$project" : { "xPerY" : "$xPerY" , "x" : "$_id.x" , "y" : "$_id.y "、"_id": 0}}

4

1 に答える 1