Neo4j:圖數據庫GraphDB(三)創建刪除及高級操作


 

本片繼續前幾篇介紹圖數據庫的創建,有疑問可以我的看看前兩篇文章: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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM