Neo4j, узел соответствия с ровно одной меткой


У меня есть 2 типа узлов. Первый тип имеет метку :Schema. Второй тип имеет как :Root, так и :Schema метки. Я хочу написать шифр, который будет соответствовать только первому типу (содержащий только метку :Schema).

Я попробовал это:

MATCH (s:Schema) return s;

, которые возвращают два типа. Также получить второй тип легко, вы просто используете

MATCH (s:Schema:Root) return s;

Итак, каков правильный шифр для сопоставления узлов с точно запрошенной меткой?

2 7

2 ответа:

Попробуйте что-нибудь вроде этого:

match (s:Schema)
WHERE Not s:Root
RETURN s

Вы можете проверить длину коллекции LABELS() (что удобно, если вы не знаете, какие другие метки следует исключить, но только знаете, что вам нужна одна метка):

MATCH (s:Schema)
WHERE LENGTH(LABELS(s)) = 1
return s;