package com.oscerd.github.mongodb;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Properties;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.oscerd.github.mongodb.config.MongoConfig;
import com.oscerd.github.mongodb.config.MongoPropertyReader;
public class Application {
public static void main(String[] args) throws IOException {
MongoClient mongoClient;
MongoPropertyReader reader = new MongoPropertyReader("config.properties");
Properties properties = reader.getProperties();
org.junit.Assert.assertNotNull(properties);
MongoConfig config = new MongoConfig(properties.getProperty("mongodb.host"), Integer.parseInt(properties.getProperty("mongodb.port")));
mongoClient = new MongoClient(config.getMongoHost(), config.getMongoPort());
DB database = mongoClient.getDB("school");
DBCollection collection = database.getCollection("students");
BasicDBObject query = new BasicDBObject();
DBCursor cursor = collection.find(query);
try {
while( cursor.hasNext() ) {
DBObject lowest = null;
DBObject object = cursor.next();
System.out.println(" Student " + object) ;
ArrayList<BasicDBObject> scores = (ArrayList) object.get("scores");
for (BasicDBObject score : scores) {
if(score.get("type").toString().equalsIgnoreCase("homework")){
if (lowest == null) lowest = score;
Float scoreLocal = Float.parseFloat(score.get("score").toString());
Float lowestLocal = Float.parseFloat(lowest.get("score").toString());
System.err.println("scoreLocal : " + scoreLocal + " lowestLocal: " + lowestLocal);
if (scoreLocal < lowestLocal) lowest = score;
}
}
System.err.println("Min: " + lowest);
scores.remove(lowest);
object.put("scores", scores);
collection.update(new BasicDBObject("_id", object.get("_id")), object, true, false);
}
}
finally {
cursor.close();
}
}
}