Posts

Showing posts from June, 2020

Neo4j - Managing Relationship names

In a Graph Database Relationships between the nodes are considered to be as important, if not more important than the nodes themselves. A Relationship joins two nodes or 'loops-back' to the same node. The relationship can be created or deleted but cannot be renamed. How to delete relationship MATCH (n { name: 'Greg' })-[r:KNOWS]->() DELETE r To rename a Relationship you do a simultaneous create and delete. Create a new relationship and delete the old as below: Rename relationship MATCH (n)-[rel:IS_CONNECTED_TO]->(m) MERGE (n)-[:KNOWS]->(m) DELETE rel MATCH (n)-[rel:IS_CONNECTED_TO]->(m) WITH rel CALL apoc.refactor.setType(rel, 'KNOWS') YIELD input, output RETURN *

Neo4j - Node Labels

Labels are the 'TABLES' of the Graph database world. Here's some useful methods of manipulating Labels. Rather than delete and create your Nodes in Neo4j just to change the label, it may be easier to try one of the two methods below: Rename node - Method 1: MATCH (s:OldLabel) SET s:NewLabel REMOVE s:OldLabel Rename node - Method 2: MATCH (n:OldLabel) WITH COLLECT(n) AS nodes CALL apoc.refactor.rename.label('OldLabel','NewLabel'[,nodes]) YIELD errorMessages AS eMessages RETURN eMessages; Do you have any more ways of 'renaming' Nodes in Neo4j? Nodes can also have more than one Label. Here is how to add and remove a Label on a Node where the only matching property is {name : 'Greg'} How to add a new label MATCH (n { name: 'Greg' }) SET n:NewLabel RETURN n.name, labels(n) AS labels How to remove a label MATCH (n { name: 'Greg' }) REMOVE n:OldLabel RETURN n.name, labels(n) AS labels

Neo4j

Neo4j is a graph database. It is not like Oracle or SQL Server - no tables and primary keys with associated foreign keys. Sounds .......... scary Sounds........... different But when you map out a workflow on a piece of paper, drawing boxes and circles and joinging them with lines, you create a graph. It's what comes naturally.