本片繼續前幾篇介紹圖數據庫的創建,有疑問可以我的看看前兩篇文章:http://www.cnblogs.com/rongyux/p/5537206.html
四 圖數據庫的創建
1 創建一個節點 Person {name: "My Name"}
CREATE (me:Person {name: "My Name"}) return me;
CREATE (movie:Movie {title: "Mystic River", released:1993}) RETURN movie;
2修改屬性
更改屬性 : movie.tagline = "We bury our sins here, Dave. We wash them clean."
MATCH (movie:Movie) WHERE movie.title="Mystic River" SET movie.tagline = "We bury our sins here, Dave. We wash them clean." RETURN movie;
更改 : movie.released = 2003
MATCH (movie:Movie) WHERE movie.title="Mystic River" SET movie.released = 2003 RETURN movie;
3 增加關系-邊
MATCH (me:Person), (movie:Movie) WHERE me.name="My Name" AND movie.title="Mystic River" CREATE (me)-[:REVIEWED {rating:80, summary:"tragic character movie"}]->(movie);
另一種寫法:
MATCH (me:Person {name:"My Name"}), (movie:Movie {title:"Mystic River"}) CREATE (me)-[:REVIEWED {rating:80, summary:"tragic character movie"}]->(movie);
4merge:若不存在這個邊,則增加這條關系:
MATCH (clint:Person),(mystic:Movie) WHERE clint.name="Clint Eastwood" AND mystic.title="Mystic River" MERGE (clint)-[:DIRECTED]->(mystic) RETURN clint, mystic;
復雜一點的例子:
增加認識 knows關系:一部電影的演員與演員,演員或導演,或導演與導演之間可能認識:
MATCH (a)-[:ACTED_IN|:DIRECTED]->()<-[:ACTED_IN|:DIRECTED]-(b) WHERE NOT (a)-[:KNOWS]-(b) MERGE (a)-[:KNOWS]->(b);
5 刪除節點和邊
MATCH (me:Person {name:"My Name"}) OPTIONAL MATCH (me)-[r]-() DELETE me,r;
6 長度等級輸出
MATCH (node1)-[*]-(node2)
eg。MATCH (node1)-[*1..3]-(node2) : 三個長度等級的輸出
7 shortestPath
函數返回路徑長度最短的path
MATCH p=shortestPath( (node1)-[*]-(node2) )
RETURN length(p), nodes(p)