IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

[Data] Requête count multiple


Sujet :

Spring Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 11
    Points : 9
    Points
    9
    Par défaut [Data] Requête count multiple
    Bonjour,

    Soit les document bibliotheque défini comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    "_id" : ...,
    "categorie" : "cat 1",
    "public" : true
     
    "_id" : ...,
    "categorie" : "cat 2",
    "public" : false,
     
     
    "_id" : ...,
    "categorie" : "cat 1",
    "public" : true
    et la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    "$group" : {
          _id:"$categorie",
          nbPublic:{ $sum: { $cond: { if: "$public", then: 1, else: 0 }}},
          nbPrivate:{ $sum: { $cond: { if: "$public", then: 0, else: 1 }}}
        }
      }
    qui me renvoie la somme des bibliothèques publiques et non publiques par catégories

    J'essaye de mettre en place cette requête grâce à un objet de type Aggregation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Aggregation aggregation = newAggregation(
                    group("categorie").count().as("nbBibliothequePrivee"),
                    match(Criteria.where("public").is(false)),
                    group("categorie").count().as("nbBibliothequePublic"),
                    match(Criteria.where("public").is(true)),
                    project("nbBibliothequePublic").and("categorie").previousOperation().and("nbBibliothequePrivee").previousOperation());

    mais je n'ai aucun résultat. Comment dois-je m'y prendre ?

    Merci de votre aide .

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    J'ai finalement réussi à m'en sortir.
    Voici la solution que j'ai choisie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Aggregation aggregation = newAggregation(
                    group("categorie") // Groupe par catégorie pour le décompte des bibliothèques privées et publiques
                            .sum(ConditionalOperators.when("public").then(1).otherwise(0)).as("nbBibliothequePublic")
                            .sum(ConditionalOperators.when("public").then(0).otherwise(1)).as("nbBibliothequePrivee"),
                    project("nbBibliothequePublic", "nbBibliothequePrivee").and("categorie").previousOperation()
            );
     
            AggregationResults<BibliothequeCountModel> result = mongoTemplate.aggregate(
                    aggregation, BibliothequeModel.class, BibliothequeCountModel.class
            );

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MongoDB] Count multiples en une seule requêtes
    Par TariC dans le forum NoSQL
    Réponses: 1
    Dernier message: 17/09/2020, 11h59
  2. Requête avec Count Multiple.
    Par MoiRemi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/02/2009, 14h20
  3. Problème requête count multiples
    Par kro001 dans le forum Débuter
    Réponses: 3
    Dernier message: 05/10/2007, 21h10
  4. problème requête à jointure multiple...
    Par Ricardo_Tubbs dans le forum Access
    Réponses: 6
    Dernier message: 09/02/2006, 16h45
  5. PB avec une requête Count
    Par Marion dans le forum ASP
    Réponses: 7
    Dernier message: 05/07/2004, 12h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo