Как отобразить график для трех узлов, где первый узел соединен с третьим через второй узел, используя ne04j-шифр? - PullRequest
1 голос
/ 23 февраля 2020

Я пытаюсь понять, где (node1)-[:related_to]->(node2)-[:belongs_to]->(node3). Я хочу отображать как (node1)-[:belongs_to]->(node3) на основе вышеуказанных отношений. Три отношения были созданы.

MATCH (n2:node2),(n3:node3)
WHERE n2.Name = n3.Name
CREATE (n3) <- [:BELONGS_TO]- (n2)

MATCH (n1:node2),(n2:node2)
CREATE (n1) <- [:related_to]- (n2)

MATCH (n1:node2),(n2:node2)
CREATE (n2) <- [:related_to]- (n1)

Я пробовал этот запрос, но он дает мне через отношения.

MATCH (n1:node1)-[r1:related_to]-(n2:node2)-[r2:BELONGS_TO]-(n3:node3) 
RETURN n1,n2,n3

Я новичок в этой области и пытаюсь привнести несколько идей. Ваши ценные отзывы будут оценены.

1 Ответ

0 голосов
/ 24 февраля 2020

если у вас (n) -> (m) -> (p) , the relationship (n) -> (p) `не существует в базе данных.

делай что хочешь, тебе понадобится APO C. Существует несколько процедур / функций для создания виртуального графа.

MATCH (n1:node1)-[r1:related_to]-(n2:node2)-[r2:BELONGS_TO]-(n3:node3) 
WITH n1, n3
CALL apoc.create.vRelationship(n1,'belongs_to',{​}, n3) YIELD rel
RETURN n1,n3, rel

Пример: https://neo4j.com/docs/labs/apoc/current/virtual/

...