sql >> データベース >  >> NoSQL >> MongoDB

Springdatamongodb-集約フレームワークの統合

    Spring Data 1.3.0.RC1が利用可能であり、集約フレームワークをサポートしています。

    例:シェル集約コマンド:

    db.eft_transactions.aggregate(
        {$match:
            {
                service:"EFT",
                source:"MARKUP",
            }
        },
        {$group:
            {
                _id:"$card_acceptor_id",
                tran_count:{$sum:1},
                amount_sum:{$sum:"$amount"}
            }
        }
    )
    

    javaから次のように実行されます:

        AggregationOperation match = Aggregation.match(Criteria.where("service").is("EFT").and("source").is("MARKUP"));
        AggregationOperation group = Aggregation.group("card_acceptor").and("amount_sum").sum("amount").and("tran_count").count();
        Aggregation aggregation = newAggregation(match, group);
        AggregationResults<StoreSummary> result = this.mongoTemplate.aggregate(aggregation, "eft_transactions", StoreSummary.class);
    

    ドキュメントはここ

    注:最近、バージョン1.3.0のBUILD-SNAPSHOTビルドの使用に切り替える必要がありました。この変更により、上記の2行を次のように変更する必要がありました。

    AggregationOperation group = Aggregation.group("card_acceptor").sum("amount").as("amount_sum").count().as("tran_count");
    Aggregation aggregation = Aggregation.newAggregation(match, group);
    


    1. Python+MongoDB-カーソルの反復が遅すぎる

    2. マングース:CastError:パス_idの値[オブジェクトオブジェクト]のObjectIdへのキャストに失敗しました

    3. ノードバックエンド(MongoDB)の状態が変化したときにAngularフロントエンドに通知する

    4. フィールド値への参照を使用した集計でのMongodb正規表現