先看看它的示例數據
打開 Neo4j Browser
:play movie graph
寫代碼,然后點play執行
Cypher, the graph query language.Neo4j提供了Cypher查詢語言,它類似於關系型數據庫中的SQL語句。
(1) 創建一個節點:create (n: Person {name: "Dennis"}) return n
插入一個Person類別的節點,且這個節點有一個屬性name,屬性值為Andres
CREATE (n:Person { name : 'Andres'});
插入邊。插入一條a到b的有向邊,且邊的類別為Follow
MATCH (a:Person),(b:Person) WHERE a.name = 'Node A' AND b.name = 'Node B' CREATE (a)-[r:Follow]->(b);
(2) 查詢所有的Person節點:match (n: Person) return n
更新節點。更新一個Person類別的節點,設置新的name。
MATCH (n:Person { name: 'Andres' }) SET n.name = 'Taylor';
1.Create: insert movie data into the graph
create語句用於Insert graph data
2.Find: retrieve individual movies and actors
如:Find the actor named "Tom Hanks".
MATCH (tom {name: "Tom Hanks"}) RETURN tom
查詢名為"Dennis"的Person節點:match (n: Person) where n.name="Dennis" return n
Find 10 people:
MATCH (people:Person) RETURN people.name LIMIT 10
List all Tom Hanks movies
MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(tomHanksMovies) RETURN tom,tomHanksMovies
Tom Hanks' co-actors
MATCH (tom:Person {name:"Tom Hanks"})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors) RETURN coActors.name
How people are related to "Cloud Atlas"
MATCH (people:Person)-[aaa]-(:Movie {title: "Cloud Atlas"}) RETURN people.name, Type(aaa)
3.Query: discover related actors and directors
MATCH p=shortestPath( (bacon:Person {name:"Kevin Bacon"})-[*]-(meg:Person {name:"Meg Ryan"}) ) RETURN p
MATCH (ms:Person { name:'Andres' }),(cs:Person { name:'Taylor' }), p = shortestPath((ms)-[r:Follow]-(cs)) RETURN p;
Delete all Movie and Person nodes, and their relationships:
MATCH (n) DETACH DELETE n
刪除節點和與其相連的邊。
MATCH (n:Person { name:'Andres' }) DETACH DELETE n;
刪除邊。
MATCH (a:Person)-[r:Follow]->(b:Person) WHERE a.name = 'Andres' AND b.name = 'Taylor' DELETE r;
:server connect命令用於連接
- 查詢兩個節點之間的關系。
MATCH (a:Person { name:'Andres' })-[r]->(b:Person { name:'Taylor' }) RETURN type(r);
- 查詢一個節點的所有Follower。
MATCH (:Person { name:'Taylor' })-[r:Follow]->(Person) RETURN Person.name;
- 查看所有的節點數和邊數
MATCH (n) RETURN count(n); MATCH ()-->() RETURN count(*);
適合存儲”修改較少,查詢較多,沒有超大節點(常見於大V)“的圖數據。Arangodb也許是一個不錯的考慮對象,根據其官網的說明,Arangodb不僅具有一般圖形數據庫的優點,而且在各種操作的速度上領先於Neo4j
用php開發
https://neo4j.com/developer/language-guides/
https://neo4j.com/developer/php/
https://neo4j.com/developer/example-project/
https://github.com/neo4j-examples?q=movies
dbms.security.auth_enabled=false
關系也可以有屬性,而且有type類型。
用的這個
https://github.com/elesos/neo4jphp
[labels] => Array ( [0] => Person )
有沒有知道如何多數據庫切換?
Active database: graph.db