import java.net.UnknownHostException; import java.util.ArrayList; import com.mongodb.BasicDBList; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.DBObject; import com.mongodb.Mongo; import com.mongodb.MongoException; public class Mongo3_1 { public static void main(String[] args) throws UnknownHostException, MongoException { Mongo mongo = new Mongo(); DB db = mongo.getDB("school"); System.out.println("Connected to database..."); DBCollection students = db.getCollection("students"); DBCursor cursor = students.find(); while (cursor.hasNext()) { DBObject obj = cursor.next(); BasicDBList scoresList = (BasicDBList) obj.get("scores"); ArrayList<BasicDBObject> scoresArray = (ArrayList) scoresList; BasicDBObject toRemove = null; double min = 666; for (BasicDBObject score : scoresArray) { if (score.get("type").equals("homework")) { double thisScore = score.getDouble("score"); if (thisScore < min) { toRemove = score; min = thisScore; } } } scoresArray.remove(toRemove); BasicDBObject findToUpdateQuery = new BasicDBObject("_id", obj.get("_id")); BasicDBObject updateQuery = new BasicDBObject("$set", new BasicDBObject("scores", scoresArray)); System.out.println(students.update(findToUpdateQuery, updateQuery)); } System.out.println("Done!"); } }