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 .