package com.tengen.hw2;
import com.mongodb.*;
import org.bson.types.ObjectId;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class HM2_2 {
public static void main(String[] args) throws UnknownHostException {
MongoClient mongoClient = new MongoClient();
DB students = mongoClient.getDB("students");
DBCollection grades = students.getCollection("grades");
BasicDBObject type = new BasicDBObject("type", "homework");
BasicDBObject sort = new BasicDBObject("student_id", 1);
sort.append("score", 1);
DBCursor dbCursor = grades.find(type).sort(sort);
Map<Integer, Key> map = new HashMap<Integer, Key>();
while (dbCursor.hasNext()) {
DBObject cursor = dbCursor.next();
ObjectId _id = (ObjectId) cursor.get("_id");
Integer student_id = (Integer) cursor.get("student_id");
Double score = (Double) cursor.get("score");
Key key = map.get(student_id);
if ((key == null) || (score < key.value)) {
map.put(student_id, new Key(_id, score));
}
}
for (Key key : map.values()) {
System.out.println("Removing _id=" + key._id);
grades.remove(new BasicDBObject("_id", key._id));
}
System.out.println(map.size());
}
static class Key {
ObjectId _id;
Double value;
public Key(ObjectId _id, Double value) {
this._id = _id;
this.value = value;
}
}
}