Objectives - To add each values in the columns as a node. Each column represents a label type. The colored column is a property of Field
column.
The query I used to ingest this into Neo4j Aura is:
LOAD CSV WITH HEADERS FROM "https://docs.google.com/spreadsheets/d/e/2PACX-1vTlOK8lOIzMR1E6YB-KDqMwsCSSrd/pub?output=csv" AS line
MERGE (m:Module {name: line.Module})
WITH m, line
MERGE (m)-[:CONTAINS_SUBMODULE]->(s:SubModule {name: line.SubModule})
WITH s, line
MERGE (s)-[:CONTAINS_MENU]->(m:Menu {name: line.Menu})
WITH m, line
WHERE line.SubMenu IS NOT NULL
MERGE (m)-[:CONTAINS_SUB_MENU]->(sm:SubMenu{name:line.SubMenu})
WITH sm, line
WHERE line.Screen IS NOT NULL
MERGE (sm)-[:LAUNCHES]->(s:Screen{name:line})
WITH s, line
WHERE line.Panel IS NOT NULL
MERGE (s)-[:CONTAINS_PANEL]->(p:Panel{name:line})
WITH p, line
WHERE line.SubScreen IS NOT NULL
MERGE (p)-[:CONTAINS_SUBSCREEN]->(ss:SubScreen{name:line})
WITH ss, line
WHERE line.Field IS NOT NULL
MERGE (ss)-[:CONTAINS_FIELD]->(f:Field{name:line})
WITH f, line
WHERE line.Button IS NOT NULL
MERGE (f)-[:CONTAINS_BUTTON]->(b:Button{name:line})
It worked fine till I attempted to map the SubMenu
with the Screen
column. It threw the error:
Property values can only be of primitive types or arrays thereof. Encountered:
Map{Panel -> String("Search"), Menu -> String("Block Status"), SubModule -> String("Booking"), SubMenu -> String("Status Codes"), Button -> NO_VALUE, Field -> NO_VALUE, SubScreen -> NO_VALUE, Mandatory Field -> NO_VALUE, Screen -> String("Status Codes"), NodeID -> String("115"), Module -> String("Administration")}
.
Is there a more efficient way to add this spreadsheet into Neo4j Aura?