sql >> Databasteknik >  >> NoSQL >> MongoDB

Spring data mongodb - integration av aggregeringsramverk

Spring Data 1.3.0.RC1 är tillgängligt och det stöder aggregeringsramverket.

Till exempel:Shellaggregationskommandot:

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

körs så här från 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);

Dokumentationen är här

OBS:Vi var nyligen tvungna att byta till att använda BUILD-SNAPSHOT-versionen av version 1.3.0. Denna ändring nödvändiggjorde ändringen till 2 av ovanstående rader som har ändrats till:

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


  1. Vad är den rekommenderade motsvarigheten till kaskadradering i MongoDB för N:M-relationer?

  2. MongoDB-schemaprestandaoptimering

  3. Redis Hash-paginering

  4. Hur man fortsätter infogningen efter dubblettnyckelfel med PyMongo