title: MongoDB aggregate $match and $group with $sum
body: <p>i have a collection with documents like this:</p>
  
  <pre><code>{
      "Company" : "4433",
      "Descripcion" : "trabajo",
      "Referencia" : "11817",
      "HoraImportado" : "15:54",
      "ImportedOd" : "2014-05-20T13:54:28.493Z",
      "Items" : [],
      "Notes" : [ 
          {
              "_id" : ObjectId("537b5ea4c61b1d1743f43420"),
              "NoteDateTime" : "2014-05-20T13:54:44.418Z",
              "Description" : "nota",
              "IsForTechnician" : true,
              "Username" : "admin"
          }, 
          {
              "_id" : ObjectId("537c4a549e956f77ab8c7c38"),
              "NoteDateTime" : ISODate("2014-05-21T06:40:20.299Z"),
              "Description" : "ok",
              "IsForTechnician" : true,
              "Username" : "admin"
          }
      ],
      "OrderState" : "Review",
      "SiniestroDe" : "Emergencia",
      "Technicians" : [ 
          {
              "TechnicianId" : ObjectId("53465f9d519c94680327965d"),
              "Name" : "Administrator",
              "AssignedOn" : ISODate("2014-05-20T13:54:44.373Z"),
              "RemovedOn" : null
          }
      ],
      "TechniciansHistory" : [ 
          {
              "TechnicianId" : ObjectId("53465f9d519c94680327965d"),
              "Name" : "Administrator",
              "AssignedOn" : ISODate("2014-05-20T13:54:44.373Z"),
              "RemovedOn" : null
          }, 
          {
              "Name" : "Nuevo",
              "AssignedOn" : ISODate("2014-05-20T13:54:44.373Z"),
              "RemovedOn" : null,
              "TechnicianId" : ObjectId("5383577a994be8b9a9e3f01e")
          }
      ],
      "Telefonos" : "615554006",
      "_id" : ObjectId("537b5ea4c61b1d1743f4341f"),
      "works" : [ 
          {
              "code" : "A001",
              "name" : "Cambiar bombilla",
              "orderId" : "537b5ea4c61b1d1743f4341f",
              "price" : "11",
              "ID" : 33,
              "lazyLoaded" : true,
              "status" : 0,
              "Date" : ISODate("2014-05-21T06:40:20.299Z"),
              "TechnicianId" : "53465f9d519c94680327965d",
              "_id" : ObjectId("537c4a549e956f77ab8c7c39")
          }, 
          {
              "code" : "A001",
              "name" : "Cambiar bombilla",
              "orderId" : "537b5ea4c61b1d1743f4341f",
              "price" : "11",
              "ID" : 34,
              "lazyLoaded" : true,
              "status" : 0,
              "Date" : ISODate("2014-05-21T06:40:20.299Z"),
              "TechnicianId" : "53465f9d519c94680327965d",
              "_id" : ObjectId("537c4a549e956f77ab8c7c3a")
          }
      ]
  }
  </code></pre>
  
  <p>Now i want to get the works for a selected TechnicianId array, group by TechnicianId and get the sum of the works.price for each technician.+</p>
  
  <p>I try with this:</p>
  
  <pre><code>db.orders.aggregate([
                       { $match: { 'works.TechnicianId': {$in:['53465f9d519c94680327965d']}}},
                       { $group: { _id: "$works.TechnicianId",total:{$sum:'$works.price'}}},
                     ])
  </code></pre>
  
  <p>And this is the result:</p>
  
  <pre><code>{
      "result" : [ 
          {
              "_id" : [ 
                  "53465f9d519c94680327965d", 
                  "53465f9d519c94680327965d"
              ],
              "total" : 0
          }
      ],
      "ok" : 1
  }
  </code></pre>
  
  <p>The total its the $sum but its 0 but should be 44.</p>