Assim como criar nós no Neo4j, podemos usar o
CREATE
instrução para criar relacionamentos entre esses nós. A instrução para criar um relacionamento consiste em
CREATE
, seguido pelos detalhes do relacionamento que você está criando. Exemplo
Vamos criar um relacionamento entre alguns dos nós que criamos anteriormente. Primeiro, vamos criar uma relação entre um artista e um álbum.
Vamos criar o seguinte relacionamento:
Aqui está o Cypher
CREATE
declaração para criar o relacionamento acima:MATCH (a:Artist),(b:Album) WHERE a.Name = "Strapping Young Lad" AND b.Name = "Heavy as a Really Heavy Thing" CREATE (a)-[r:RELEASED]->(b) RETURN r
Explicação do código acima
Primeiro, usamos um
MATCH
para encontrar os dois nós entre os quais queremos criar o relacionamento. Pode haver muitos nós com um Artista ou Álbum label para restringi-lo apenas aos nós nos quais estamos interessados. Nesse caso, usamos um valor de propriedade para filtrá-lo. Usamos o Nome propriedade que atribuímos anteriormente a cada nó.
Depois, há o
CREATE
real demonstração. Isso é o que cria o relacionamento. Neste caso, ele referencia os dois nós pelo nome da variável (ou seja, a
e b
) que demos a eles na primeira linha. O relacionamento é estabelecido usando um padrão de código ASCII, com uma seta indicando a direção do relacionamento:(a)-[r:RELEASED]->(b)
. Damos ao relacionamento um nome de variável de
r
e dê ao relacionamento um tipo de RELEASED
(como em "esta banda lançou este álbum"). O tipo de relacionamento é análogo ao rótulo de um nó. Adicionando mais relacionamentos
O exemplo acima é um exemplo muito simples de um relacionamento. Uma das coisas em que o Neo4j é realmente bom é lidar com muitos relacionamentos interconectados.
Vamos construir o relacionamento que acabamos de estabelecer, para que possamos ver como é fácil continuar criando mais nós e relacionamentos entre eles. Então vamos criar mais um nó e adicionar mais dois relacionamentos.
Terminaremos com o seguinte gráfico:
Este gráfico mostra que Devin Townsend toca na banda, atuou no álbum que a banda lançou e também produziu o álbum.
Então vamos começar criando o nó para Devin Townsend:
CREATE (p:Person { Name: "Devin Townsend" })
Agora crie os relacionamentos e retorne o gráfico:
MATCH (a:Artist),(b:Album),(p:Person) WHERE a.Name = "Strapping Young Lad" AND b.Name = "Heavy as a Really Heavy Thing" AND p.Name = "Devin Townsend" CREATE (p)-[pr:PRODUCED]->(b), (p)-[pf:PERFORMED_ON]->(b), (p)-[pl:PLAYS_IN]->(a) RETURN a,b,p
Agora você deve ver o gráfico como na captura de tela anterior.