2017-10-04 1 views
1

MySQL Table avec des colonnes noms comme (nom, valeur):Neo4j Cypher: Comment convertir une table mysql en noeuds graphiques pour un échantillon donné?

Name Value 

A V100 
B V200 
C V300 
A V101 
B V202 
C V301 

Comment convertir le tableau ci-dessus pour représenter graphiquement: Les étiquettes doivent être comme suit:

Label A 
Label B 
Label C 
Nodes (a:A{V100}),(a:A{V101}) 
     (b:B{V200}),(b:B{V201}) 
     (c:C{V00}), (c:C{V301}) 

Le problème est que dans la table les valeurs A, B, C sont génériques. À l'avenir, toutes les autres valeurs peuvent être ajoutées comme D avec les valeurs V400 & V401 ou E avec les valeurs V500 & V501. Par conséquent, la requête de chiffrement doit être générique afin de créer les nœuds.

+1

1. Vanilla Cypher ne prend pas en charge la création d'étiquettes dynamiques, de sorte que vous aurez besoin de la [Bibliothèque] APOC (https: // Neo4j -contrib.github.io/neo4j-apoc-procedures/#_creating_data). 2. Qu'est-ce que vous entrez? Est-ce un fichier CSV? 3. Comment aimeriez-vous stocker les valeurs? Une simple propriété 'value' suffirait-elle? –

+0

L'entrée sera un fichier csv. Les valeurs peuvent être stockées en tant que propriété simple. Pouvez-vous me donner un exemple en APOC? – neoman1

+0

Bien sûr, j'ai ajouté ma réponse. –

Répondre

1

Vanilla Cypher ne prend pas en charge la création d'étiquettes dynamiques, vous aurez donc besoin du APOC library.

LOAD CSV WITH HEADERS FROM "file:/some-file.csv" AS line 
CALL apoc.create.node([line.Name], {value: line.Value}) 
YIELD node 
RETURN count(node) 

Pour un guide sur LOAD CSV, consultez this blogpost et aussi le Cypher documentation