final long start = System.nanoTime();
final List<DBObject> list = getDs().getDB().getCollection("Address")
.find()
.sort(new BasicDBObject("name", 1))
.toArray();
final EntityCache entityCache = new DefaultEntityCache();
final List<Address> resultList = new LinkedList<Address>();
for (final DBObject dbObject : list) {
final Address address = getMorphia().fromDBObject(Address.class, dbObject, entityCache);
resultList.add(address);
}