Turns out one great way to do this is the following:
BasicDBObject project = new BasicDBObject("$project", new BasicDBObject("sleep", new BasicDBObject().append("date", 1).append("hours", 1)));
Then you can call your aggregation command as follows:
AggregationOutput output = collection.aggregate(commandOne, commandTwo, Project, CommandThree);
Hope this helps :)