@@ -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())); |
|