I am interested in Neo4j for modelling hierarchies as the RDBMS are not really suited for this ( http://www.codeproject.com/Articles/22824/A-Model-to-Represent-Directed-Acyclic-Graphs-DAG-o)
Installing Neo4j Community Edition on Windows is a piece of cake: http://neo4j.com/download/
Also there is plenty of documentation and many answered questions on StackOverflow :)
A good place to start: https://www.airpair.com/neo4j/posts/getting-started-with-neo4j-and-cypher
Some useful queries:
--------------------------------
Match Node by id:
MATCH (n)
WHERE id(n) = 14
RETURN n;
---------------------------------
Match relationship by Id
MATCH ()-[r]-()
WHERE ID(r)=1
RETURN r
------------------------------
Find path between 2 nodes, replace "REPORTS_TO" with your relation
START a=node(11), d=node(12)
MATCH p=a-[r:REPORTS_TO*..]-d
RETURN p;
----------------------------
Delete node and all its relationships
MATCH (n { name:'Andres' })
DETACH DELETE n
-----------------------------------------
DELETE all relationships
MATCH ()-[r:REPORTS_TO]->() DELETE r;
Importing data from CSV
Official docs: http://neo4j.com/docs/stable/query-load-csv.htmlI copied the files to be imported next to the database file because I had issues with other paths. My path looks like: C:\Users\my_user\Documents\Neo4j\file_to_import.csv
Loading nodes:
LOAD CSV FROM 'file:///C:/Users/my_user/Documents/Neo4j/nodes.csv' AS line
CREATE (:User { some_id: line[0], user_name: line[1], link: line[2] })
Add an index on some_id property:
CREATE CONSTRAINT ON (n:User) ASSERT n.some_id IS UNIQUE
Load relations from CSV file, replace PART_OF with your relation:
LOAD CSV FROM "file:///C:/Users/my_user/Documents/Neo4j/relations.csv" AS line
MATCH (p:User { some_id:line[0] })
MATCH (f:Group { group_id:line[1] })
CREATE (f)-[:PART_OF { some_property: line[2] } ]->(p);
No comments:
Post a Comment