10.1.3 Основы связей

10.1.3.1 Исходящие связи

Если имеет значение направление связи, оно показывается с помощью --> или <--, например:

Запрос

MATCH (martin { name:'Martin Sheen' })-->(movie)
RETURN movie.title

Возвращает узлы, связанные с Мартином Шином исходящей связью.

Таблица 10.5 Результат

movie.title
"Wall Street"
"The American President"

10.1.3.2 Направленные связи и идентификатор

Если вам требуется идентификатор, либо для фильтрации по свойствам связи, либо для возвращения связи, вот как можно его ввести.

Запрос

MATCH (martin { name:'Martin Sheen' })-[r]->(movie)
RETURN r

возвращает все исходящие от Мартина связи.

Таблица 10.6 Результат

r
:ACTED_IN[1]{}
:ACTED_IN[3]{}

10.1.3.3 Сопоставление по типу связи

Когда вы знаете тип связи, который хотите сопоставить, вы можете задать его с помощью двоеточия перед типом связи.

Запрос

MATCH (wallstreet { title:'Wall Street' })<-[:ACTED_IN]-(actor)
RETURN actor

возвращает узлы, которые «играли» (ACTED_IN) в фильме Wall Street.

Таблица 10.7 Результат

actor
Node[1]{name:"Charlie Sheen"}
Node[2]{name:"Martin Sheen"}
Node[6]{name:"Michael Douglas"}

10.1.3.4 Сопоставление по нескольким типам связей

Чтобы сопоставить одному из нескольких типов, вы можете указать его, связав их вместе с помощью символа |.

Запрос

MATCH (wallstreet { title:'Wall Street' })<-[:ACTED_IN|:DIRECTED]-(person)
RETURN person

возвращает узлы со связью ACTED_IN или DIRECTED к Wall Street.

Таблица 10.8 Результат

person
Node[0]{name:"Oliver Stone"}
Node[1]{name:"Charlie Sheen"}
Node[2]{name:"Martin Sheen"}
Node[6]{name:"Michael Douglas"}

10.1.3.5 Сопоставление по типу связи и использование идентификатора

Если вы хотите ввести идентификатор для связи и одновременно с этим указать требуемый тип связи, просто добавьте и то, и другое, подобно тому, как это сделано ниже.

Запрос

MATCH (wallstreet { title:'Wall Street' })<-[r:ACTED_IN]-(actor)
RETURN r

возвращает узлы, которые снимались (ACTED_IN) в фильме Wall Street.

Таблица 10.9 Результат

r
|:ACTED_IN[0]{}
:ACTED_IN[1]{}
:ACTED_IN[2]{}

Предыдущая | Следующая