任何資料庫基礎的都是增刪改查四種功能,而neo4j使用的cypher語言一樣如此。cypher是一種很好處理圖資料庫的語言,下面就從幾個基本功能來學習他的基本用法。就以我們做的電影智慧型問答系統來做示範。
一 建立節點
建立節點有兩種方式,一種是create方式,一種是用merge方式。其中用create建立是不管這個節點有沒有都進行建立,而merge是如果節點存在則不再建立。
1(被create建立了兩次的節點,他們的id值是被neo4j自動分配而且遞增的)此時建立的節點除了id屬性沒有其他的屬性。//merge方式,建立唯一節點
2merge(n:教父) 34
//create方式,無論有沒有都進行建立節點
5 create(n:教父)
二 增刪改節點屬性
(1)查詢到相應節點並返回
1(2)給相應節點新增屬性//注意不要忘記返回節點
2 match(n) where id(n) = 3272
return n
1neo4j查詢節點用:match 相當於關係型資料庫的select,相當於非關聯式資料庫mongodb的find//給該node新增三個屬性,分別是label(節點標籤名),releasedate(上映日期),introduction(電影介紹)
2 match(n) where id(n) = 3272
set n.label='
教父',n.releasedate='
1991-03-21
',n.introduction='
教父很好看
'return n
neo4j修改節點屬性用:set 相當於關係型資料庫的update...set...
(在neo4j中如果設定不存在的屬性會自動新建該屬性)
(3)刪除節點的屬性
1(4)建立帶屬性的節點//刪除電影的上映日期屬性
2 match(n) where id(n) = 3272 remove n.releasedate return n
1 create(n:movie) return n三 模糊查詢
查詢屬性值label開頭是「教」其餘任意值的節點資訊
match(n) where n.label=~'四 刪除相應節點教*.'
return n
刪除節點中對應標籤的節點
match(n:movie) where id(n) = 3257 delete n五 關係
1.建立關係
關係不能獨自存在,必須有兩個或兩個以上的節點才可以。而建立統一用create命令,而關係的建立,實際上和建立節點差不多,唯一區別就是,關係是有方向的,而且關係用『』表示,而節點用'()'表示。如:
match(n),(b) where n.label='(1)、首先匹配找到節點n和b,也就是李連杰和少林寺代表的節點node李連杰' and b.label='
少林寺'create(n)-[r:actedin]->(b) return n,r,b
(2)、然後建立節點n到節點b的關係r,r有兩個屬性,乙個是時間since,另乙個是拿過的獎項數量champion
(3)、最後返回n,r,b 完整節點之間的關係結果,table資料有三列。
2. 修改關係屬性
match(n)-[r]-(b) where id(r) = 125133. 刪除關係set r.since='
1990-09-09
'return n,r,b
match(n)-[r]-(b) where n.label='以上就是cypher語言的基本用法。李連杰' and b.label='
少林寺'
delete r
return r
neo4j 查詢cypher話語
engine.execute start n node people return n params skip和limit的數字引數12 345mapparams new hashmap params.put s 1 params.put l 1 executionresult result eng...
Neo4j筆記(二)Cypher(1)case語句
cypher支援case條件表示式,它的邏輯類似於c語言中的if else語句。乙個case語句包含乙個或多個when then子句,每個子句都是乙個表示式。case語句也可以包含乙個else子句,當之前的條件都不為真時,則執行該else子語句,類似於c語言中的default。case語句有兩種語法...
初探Neo4J中的Cypher
由於rdf資料庫需要,需要調研圖形資料庫,選擇了neo4j進行嘗試,發現它包含了乙個名為 cypher 的操作語言,使用了一下感覺非常不錯,所有有寫點東西的必要。從官網上盜個圖 其實,這個圖也就標識了cypher語言的基本功能,節點a到節點b,關係是likes,其操作的方法與sql的select一樣...