title: Create Spring Data Aggregation from MongoDb aggregation query
body: <p>Can any one help me convert this mongoDB aggregation to spring data mongo?</p>
  
  <p>I am trying to get list of un-reminded attendee's email in each invitation document.</p>
  
  <p>Got it working in mongo shell, but need to do it in Spring data mongo.</p>
  
  <p><strong>My shell query</strong></p>
  
  <pre><code>db.invitation.aggregate(
  [ 
      { $match : {_id : {$in : [id1,id2,...]}}},
      { $unwind : "$attendees" },
      { $match : { "attendees.reminded" : false}},
      { $project : {_id : 1,"attendees.contact.email" : 1}},
      { $group : {
              _id : "$_id",
              emails : { $push : "$attendees.contact.email"}
          }
      }
  ]
  </code></pre>
  
  <p>)</p>
  
  <p>This is what I came up with, as you can see, it's working not as expected at a project and group operation of the pipeline. Generated query is given below.</p>
  
  <p><strong>Aggregation Object creation</strong></p>
  
  <pre><code>Aggregation aggregation = newAggregation(
          match(Criteria.where("_id").in(ids)),
          unwind("$attendees"),
          match(Criteria.where("attendees.reminded").is(false)),
          project("_id","attendees.contact.email"),
          group().push("_id").as("_id").push("attendees.contact.email").as("emails")
      );
  </code></pre>
  
  <p>It creates the following query</p>
  
  <p><strong>Query generated by Aggregation object</strong></p>
  
  <pre><code>{ "aggregate" : "__collection__" , "pipeline" : [
  { "$match" : { "_id" : { "$in" : [id1,id2,...]}}},
  { "$unwind" : "$attendees"},
  { "$match" : { "attendees.reminded" : false}},
  { "$project" : { "_id" : 1 , "contact.email" : "$attendees.contact.email"}},
  { "$group" : { "_id" : { "$push" : "$_id"}, "emails" : { "$push" : "$attendees.contact.email"}}}]}
  </code></pre>
  
  <p>I don't know the correct way to use Aggregation Group in spring data mongo.</p>
  
  <p>Could someone help me please or provide link to group aggregation with $push etc?</p>