В официально документации 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('
);