2014-01-10 69 views
2

为了使MongoDB使用Spring Data/Java API,我如何将下面的mongo shell查询转换为Spring Data/Java查询,任何帮助都很棒......将Mongo Shell脚本转换为SpringData/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"}}} 
) 

回答

2

在春天,它看起来像这样

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

谢谢,这是有益的... :) – vmr

+0

好 - 如果你快乐,你能接受答案吗? :-) –

+0

我是................ :) – vmr