Cypher newb здесь, который, вероятно, не может получить мою голову из «мышления в SQL»:Cypher: Синтаксис ярлыков - используйте «ИЛИ», ограничивая узлы ярлыками?
Скажем, у меня есть график персонажей Звездных войн и их детей (и их детей и т. Д.).
У меня есть отношения между родителем и ребенком. Если я хочу вернуть узлы все потомство Анакина Скайуокера (в том числе и его тоже), я мог бы сделать это:
MATCH (x:Person {name:"Darth Vader"})-[:CHILD_OF*1..3]-(y)
RETURN x,y
Что делать, если я хочу, чтобы сравнить потомство двух персонажей, правда? Скажем, я хочу увидеть икру и Анакина, и отвратительного Джара Джара Бинкса. Есть ли способ по существу ИЛИ ограничение метки?
MATCH (x:Person {name:"Darth Vader | "Jar Jar"})-[:CHILD_OF*1..3]-(y)
RETURN x,y
Номер
MATCH (x:Person {name:("Darth Vader", "Jar Jar")})-[:CHILD_OF*1..3]-(y)
RETURN x,y
Неудача.
MATCH (x:Person {name:"Darth Vader"} OR {name: "Jar Jar"})-[:CHILD_OF*1..3]-(y)
RETURN x,y
Печаль.
Или НЕОБХОДИМО использовать WHERE условие (которое нарушило бы [: CHILD_OF * 1..3]?, Правильно я полагаю, ГДЕ будет применяться ранее [: CHILD_OF1..3]? Получает оценку)
Большое спасибо.
Вы имеете в виду этикетки или свойства? 'name' в вашем примере является свойством,': Person' является меткой. – jjaderberg
Недвижимость. Спасибо, что указали на это, все еще прижимаясь к лексике. –