Al igual que crear nodos en Neo4j, podemos usar CREATE
instrucción para crear relaciones entre esos nodos.
La instrucción para crear una relación consta de CREATE
, seguido de los detalles de la relación que está creando.
Ejemplo
Vamos a crear una relación entre algunos de los nodos que creamos anteriormente. Primero, creemos una relación entre un artista y un álbum.
Crearemos la siguiente relación:
Aquí está el Cypher CREATE
declaración para crear la relación anterior:
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
Explicación del código anterior
Primero, usamos un MATCH
instrucción para encontrar los dos nodos entre los que queremos crear la relación.
Podría haber muchos nodos con un Artista o Álbum label para que lo reduzcamos a solo aquellos nodos que nos interesan. En este caso, usamos un valor de propiedad para filtrarlo. Usamos el Nombre propiedad que habíamos asignado previamente a cada nodo.
Luego está el CREATE
real. declaración. Esto es lo que crea la relación. En este caso, hace referencia a los dos nodos por el nombre de la variable (es decir, a
y b
) que les dimos en la primera línea. La relación se establece utilizando un patrón de código ASCII, con una flecha que indica la dirección de la relación:(a)-[r:RELEASED]->(b)
.
Le damos a la relación un nombre de variable de r
y darle a la relación un tipo de RELEASED
(como en "esta banda lanzó este álbum"). El tipo de relación es análogo a la etiqueta de un nodo.
Agregar más relaciones
El ejemplo anterior es un ejemplo muy simple de una relación. Una de las cosas en las que Neo4j es realmente bueno es en el manejo de muchas relaciones interconectadas.
Construyamos sobre la relación que acabamos de establecer, para que podamos ver lo fácil que es seguir creando más nodos y relaciones entre ellos. Así que crearemos un nodo más y agregaremos dos relaciones más.
Terminaremos con el siguiente gráfico:
Este gráfico muestra que Devin Townsend toca en la banda, actuó en el álbum que la banda lanzó y también produjo el álbum.
Entonces, comencemos creando el nodo para Devin Townsend:
CREATE (p:Person { Name: "Devin Townsend" })
Ahora cree las relaciones y devuelva el 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
Ahora debería ver el gráfico como en la captura de pantalla anterior.