Вопрос

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

> 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"}}}
)
.

Это было полезно?

Решение

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

    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.*;
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top