diff --git a/ass1-doc/src/main/java/dst/ass1/doc/impl/DocumentQuery.java b/ass1-doc/src/main/java/dst/ass1/doc/impl/DocumentQuery.java index a370576..ad74fcf 100644 --- a/ass1-doc/src/main/java/dst/ass1/doc/impl/DocumentQuery.java +++ b/ass1-doc/src/main/java/dst/ass1/doc/impl/DocumentQuery.java @@ -56,6 +56,33 @@ public class DocumentQuery implements IDocumentQuery { @Override public List getDocumentStatistics() { - return null; + MongoCollection collection = db.getCollection(COLL_LOCATION_DATA); + + String map = + "function() {" + + "if (this.type === 'place') {" + + "emit(this.category, 1);" + + "}" + + "}"; + + String reduce = + "function(key, values) {" + + "sum = 0;" + + "values.forEach(value => {sum += value});" + + "return sum;" + + "}"; + + List result = new ArrayList<>(); + MongoCursor cursor = collection.mapReduce(map, reduce).iterator(); + + try { + while (cursor.hasNext()) { + result.add(cursor.next()); + } + } finally { + cursor.close(); + } + + return result; } }