Преобразование сценария оболочки Mongo в SpringData/Java

Тем не менее, чтобы смириться с использованием API Spring Data/Java для MongoDB, как мне преобразовать следующий запрос оболочки mongo в запрос Spring Data/Java, любая помощь будет отличной...

> db.collection.aggregate(
{$unwind : "$data.mi"},
{$sort : {"data.mi.failures" : -1}},
{$group : {_id : "$data.mi.name", 
           sum_total_of_failures : {$sum : "$data.mi.failures"}, 
           uid : {$first : "$uid"}}}
)

person vmr    schedule 10.01.2014    source источник


Ответы (1)


Весной это выглядело бы так

    String collection="collection";

    Aggregation agg = newAggregation(
            unwind("data.mi")
            ,sort(DESC,"data.mi.failures")
            ,group("data.mi.name")
            .sum("data.mi.failures").as("sum_total_of_failures")
            .first("uid").as("uid")
    );
    AggregationResults<Type> aggregate = mongoOperations.aggregate(agg, collection, objectClass);

С учетом этого импорта

import com.mongodb.BasicDBObject;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationResults;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;

import static org.springframework.data.domain.Sort.Direction.*;
import static org.springframework.data.mongodb.core.aggregation.Aggregation.*;
person Alan Spencer    schedule 10.01.2014
comment
Спасибо, было полезно... :) - person vmr; 16.01.2014