Voici l'exemple de code pour la requête mentionné dans la question.
Veuillez modifier getMongoConnection() avec votre façon d'obtenir l'objet mongoOperations. Je viens d'ajouter mon code en bas pour votre référence.
public Boolean getOrderGiftCardCount(Integer quantity) {
MongoOperations mongoOperations = getMongoConnection();
MatchOperation match = new MatchOperation(Criteria.where("quantity").gt(quantity));
GroupOperation group = Aggregation.group("giftCard").sum("giftCard").as("count");
Aggregation aggregate = Aggregation.newAggregation(match, group);
AggregationResults<Order> orderAggregate = mongoOperations.aggregate(aggregate,
"order", Order.class);
if (orderAggregate != null) {
System.out.println("Output ====>" + orderAggregate.getRawResults().get("result"));
System.out.println("Output ====>" + orderAggregate.getRawResults().toMap());
}
return true;
}
Ma méthode de connexion de référence: -
public MongoOperations getMongoConnection() {
return (MongoOperations) new AnnotationConfigApplicationContext(SpringMongoConfig.class)
.getBean("mongoTemplate");
}
version données Spring utilisé: -
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>1.9.1.RELEASE</version>
</dependency>
Exemple de sortie: -
Output ====>[ { "_id" : 2.0 , "count" : 2.0} , { "_id" : 1.0 , "count" : 2.0}]
Pourriez-vous regarder ce lien - http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongo.aggregation Il contient quelques exemples liés à l'agrégation – nurgasemetey