In the old api i had to make frequently casts like this
BasicDBList points = ((BasicDBList) ((BasicDBObject) currentObject.get("poly")).get("coordinates"));
If the Document class had functions like this
Document getDocument(String key); <- sub document List<Document> getDocumentArray(String key); <- Array of sub documents List<Object> getArray(String key); <- Array of other objects
i could avoid such casts