В официально документации MODx Revo почему-то пропустили некоторые операторы, которые также можно использовать в запросе к базе данных.
Иногда при выборке требуется использовать оператор MySQL — NOT IN, рассмотрим простой пример использования NOT IN, по сути он такой же как и IN:
$q=$modx->newQuery('modResource');
$q->select(array(
'id as docID',
'parent',
'pagetitle'));
$q->where(array(
'published' => '1',
'cacheable' => '1',
'class_key' => 'modDocument',
'parent:!NOT IN' => array('1','4','5')
));
$result = $modx->getCollection('modResource', $q);
Список всех операторов, которые вы можете использовать в MODx Revo условиях при запросе:
protected $_operators= array (
'=', '!=', '<', '<=', '>', '>=', '<=>', ' LIKE ', ' IS NULL', ' IS NOT NULL', ' BETWEEN ', ' IN ', ' IN(', ' NOT(', ' NOT (', ' NOT IN ', ' NOT IN(', ' EXISTS (', ' EXISTS(', ' NOT EXISTS (', ' NOT EXISTS(', ' COALESCE(', ' GREATEST(', ' INTERVAL(', ' LEAST(', 'MATCH(', 'MATCH (', 'MAX(', 'MIN(', 'AVG(' );