Displaying differences for changeset
 
display as  

src/java/m/timeseries/aggregate/V1_0.java

@@ -168,9 +168,7 @@
       datesQuery = new Document("data.0", datesQuery);
     }
     
-    Document project = new Document(
-            "date", new Document("$arrayElemAt", Arrays.asList("$data", 0))
-    );
+    Document project = new Document();
     for (int i = 1; i < header.size(); i++) {
       project.append(header.get(i), new Document("$arrayElemAt", Arrays.asList("$data", i)));
     }
@@ -187,8 +185,8 @@
     // Export for robomongo
     List<Bson> aggList = Arrays.asList(
             Aggregates.match(new Document("location_id", locationDoc.getString("_id"))),
+            Aggregates.unwind("$data"),
             Aggregates.match(datesQuery),
-            Aggregates.unwind("$data"),
             Aggregates.project(project),
             new Document("$group", group),
             new Document("$sort", new Document("year", 1).append("month", 1))
@@ -196,10 +194,9 @@
 
     AggregateIterable<Document> iter = c.aggregate(aggList).allowDiskUse(true);
     for (Document d : iter) {
+        List<Object> row = new ArrayList<>();
         // Fix date formatting
-        List<Object> row = new ArrayList<>();
-        Date dt = (Date) d.get("date");
-        row.add(ft.format(dt));
+        row.add(d.get("year") + "-" + d.get("month") + "-01");
         for (int i = 1; i < header.size(); i++) {
           String p = header.get(i);
           row.add(d.get(p + "_avg"));
@@ -215,6 +212,7 @@
       res.put("location", coords);
     }
     res.put("header", header);
+    res.put("data", filtered);
     Document metadata = (Document) locationDoc.get("metadata");
     res.put("metadata", new JSONObject(metadata.toJson()));