Найти узлы, где свойство не является конкретным значением без ГДЕ - PullRequest
0 голосов
/ 27 ноября 2018

Свойство узла имеет 6 категорий.Я хотел бы оставить все узлы с этим свойством не равным ни одной из категорий.

Это просто сделать с WHERE, например:

MATCH (a) 
WHERE a.property <> "category" 
RETURN a

Мне бы хотелосьсделать это по-другому без where, потому что это кажется более эффективным.Я представляю себе так:

MATCH ( a {property <> "category"} ) 
RETURN a

Возможно ли это?

1 Ответ

0 голосов
/ 27 ноября 2018

Neo4j MATCH не имеет синтаксиса для встроенного WHERE NOT <property>=<value>.Кроме того, Cypher является декларативным, то есть он определяет только то, что возвращать, а не как возвращать.Таким образом, MATCH (n{id:1}) эквивалентно (в исполнении) MATCH (n) WHERE n.id=1.Единственный раз, когда WHERE vs inline создает разные планы выполнения, это когда вы не соединяете предложение WHERE с MATCH.Пытаясь «оптимизировать» свой шифр для выполнения, большую часть времени вы будете просто идти по пути планировщика Сайфера.(Если ваш оригинальный шифр не был слишком сложным)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...