J'ai commencé à utiliser la base de données Je fais la référence et la documentation de l'API écrémé et je peux voir qu'il y a une intégration de la carte, mais qu'en est-il du cadre d'agrégation? Je peux voir que cela prend en charge le groupe par opération, qui indiquerait qu'il prend en charge Je pose cette question parce que je voulais savoir quel type d'intégration avec mongodb code> dans mon application et pour l'accès aux données, j'ai choisi les données de ressort pour MongoDB. P>
$ Group code> l'exploitant en jugeant à partir de ceci: http://docs.mongodb.org/manual/reference/sql-agregation-comparison/ , mais qu'en est-il des autres opérateurs, ne sont pas pris en charge pour l'instant? P>
Mongodb code> SPING Data fournit donc je sais à quoi m'attendre, pour ainsi dire. P>
4 Réponses :
Les données du ressort mongoopérations.group () code> méthode est mappée sur
db.collection.group () code> Commande MongoDB et non le groupe
$ code> Fonction d'agrégation. Actuellement, il n'y a pas de support dans les données de printemps Mongodb pour le cadre d'agrégation. Carte Réduire, comme vous l'avez mentionné, est supporté si p>
Merci de clarifier cela pour moi.
Vous pouvez cependant faire un pas au pilote Java Mongodb lorsque vous avez besoin de pouvoirs de cadre d'agrégation. mongoops.gecollection ("YourCollection"). Agrégat (...) Code>
Spring Data 1.3.0.RC1 est disponible et prend en charge le cadre d'agrégation.
Par exemple: L'agrégation de coquille COMAND: P>
AggregationOperation group = Aggregation.group("card_acceptor").sum("amount").as("amount_sum").count().as("tran_count"); Aggregation aggregation = Aggregation.newAggregation(match, group);
Qu'en est-il de exemple code> ou sélectionner aléatoire? docs.mongodb.org/master/Reference/Perateur/agregistration/sampl e
Voici comment obtenir la somme d'un champ particulier.
private Map<String, Long> getTotalMap(){ /* db.pDSSummaryModel.aggregate([{ $group: { _id: null, total: { $sum: '$totalUniqueCustomerCount' } } }]) */ Aggregation aggregations = newAggregation( group("null").sum("totalUniqueUserCount").as("userTotal") .sum("totalUniqueCustomerCount").as("customerTotal"), project("customerTotal", "userTotal") ); AggregationResults<DBObject> results = mongoTemplate.aggregate(aggregations, "pDSSummaryModel", DBObject.class); List<DBObject> fieldList = results.getMappedResults(); Map<String, Long> map = new HashMap<>(); if(fieldList != null && !fieldList.isEmpty()) { for(DBObject db: fieldList){ map.put("userTotal", parseLong(db.get("userTotal").toString())); map.put("customerTotal", parseLong(db.get("customerTotal").toString())); } } return map; }
Aggregation aggregation = newAggregation( match(Criteria.where("salesyear").is(year)), group("brand","salesyear").sum("numberOfCars").as("total"), sort(Sort.Direction.ASC, previousOperation(), "brand") );