Массовая чистка дубликатов УРЛов

Бывает, зайдешь на сайт, и видишь там вот такое: ? Ладно если это 5-10 документов. А если это 160, как в моем случае? Бывает и больше. Вот опять лень меня победила и я решил написать скрипт, который делает выборку таких конфликтных документов и исправляет им УРЛы автоматом.
Принимайте скрипт: ini_set('display_errors', 1); $modx->setLogLevel(3); $modx->setLogTarget('HTML');

$table = $modx->getTableName("modResource");

$q = $modx->newQuery("modResource");

$alias = $q->getAlias();

$q->select(array( "{$alias}.*", ));

$q->query['from']['tables'][] = array( "table" => "(select count(*) as total, uri from {$table} as c group by c.uri)", "alias" => "t1", );

$q->where(array( "{$alias}.alias:!=" => "", "{$alias}.uri:!=" => "", "{$alias}.uri = t1.uri", "t1.total > 1", ));

foreach($modx->getIterator("modResource", $q) as $doc){

$i = 10;

while($doc->isDuplicateAlias() AND $i > 0){
    
    $i--;
    
    preg_match("/(.*?)\-?(\d*)$/u", $doc->alias, $match);
    
    $doc->alias = "{$match[1]}-{$match[2]}" . rand(1,9);
}

if($doc->isDirty('alias')){
    $doc->save();
}

}

print "\n End"; P.S. По поводу написания таких составных запросов я писал здесь.