private ClosableIterator<Tuple> doFind(MongoDBQueryDescriptor query, QueryParameters queryParameters, DBCollection collection,
EntityKeyMetadata entityKeyMetadata) {
DBCursor cursor = collection.find( query.getCriteria(), query.getProjection() );
if ( query.getOrderBy() != null ) {
cursor.sort( query.getOrderBy() );
}
// apply firstRow/maxRows if present
if ( queryParameters.getRowSelection().getFirstRow() != null ) {
cursor.skip( queryParameters.getRowSelection().getFirstRow() );