AQL для Arangodb похож на НЕ В SQL

Как сделать FILTER как этот пример SQL в AQL?

SELECT * FROM test WHERE option NOT IN ('A', 'B', 'C')

person Tarsis    schedule 06.08.2014    source источник


Ответы (1)


В версии 2.3 и выше можно:

FOR doc IN test 
  FILTER doc.option NOT IN [ 'A', 'B', 'C' ]
  RETURN doc

В более ранних версиях должно работать следующее:

FOR doc IN test 
  FILTER ! (doc.option IN [ 'A', 'B', 'C' ])
  RETURN doc
person stj    schedule 07.08.2014
comment
Это работает, но было бы неплохо иметь псевдоним для !NOT(...). Еще лучше была бы конструкция типа Python NOT IN, чтобы вы могли печатать так, как вы говорите / думаете, и избегать скобок. - person CodeManX; 29.08.2014
comment
конструкция NOT IN появится в выпуске ArangoDB 2.3 или 2.4, который содержит несколько основных переработанных AQL. - person stj; 03.10.2014