Найти узлы Neo4j, где свойство не установлено

Используя Cypher, как я могу найти узел, где свойство не существует?

Например, у меня есть два узла:

A = {foo: true, name: 'A'},  B = { name: 'B'}

Теперь я хотел бы найти B, выбирая его на основе отсутствия свойства foo. Как я могу это сделать?

Ответ 1

Как отметил Майкл Хунгер

MATCH (n) WHERE NOT EXISTS(n.foo) RETURN n

В старых версиях Neo4j вы можете использовать HAS:

# Causes error with later versions of Neo4j
MATCH (n) WHERE NOT HAS(n.foo) RETURN n

Ответ 2

MATCH (f) WHERE f.foo IS NULL RETURN f