Deixe a Spring fazer o trabalho pesado com as coisas que já construiu para isso...
O verdadeiro truque é:mongoTemplate.getConverter().read(Foo.class, obj);
Por exemplo, ao usar um DBCursor -
while (cursor.hasNext()) {
DBObject obj = cursor.next();
Foo foo = mongoTemplate.getConverter().read(Foo.class, obj);
returnList.add(foo);
}
http://revelfire.com/spring-data-mongodb-convert-from-raw-query-dbobject/