Cypher - [OPTION] MATCH

條件表達式數據庫

CASE test
WHEN value THEN result
[WHEN ...]
[ELSE default]
ENDspa

CASE
WHEN
predicate THEN result
[WHEN ...]
[ELSE default]
END字符串

 match(n:User)
where n.id = 1
return case n.id when 1 then '管理員' else '普通人員' end as result
it

match(n:User)
where n.id = 1
return case  when n.id=1 then '管理員' else '普通人員' end as result
io

// 查詢全部節點test

match (n)
return n
搜索

//節點和屬性過濾數據

match (me)
where me.id = 1 and me:User
return me
項目

//檢查【節點】【屬性】的存在性查詢

match (me)
where exists(me.age)
return me

//字符串匹配(區分大小寫)

match (u)
where u.name starts with 'a' and u.name ends with 'z' or u.name contains 'zs' 
return u

// 匹配多種關係中的一種 , 使用  |

match (n) -[r :ORG | :DEP]-> ()
return n

// 返回類型類型

match (n) -[r]- ()
return type(r)

//返回標籤類型

match (n:User)
where n.id = 1
return labels(n)

//返回多個類型 【我朋友的朋友】

match (me:User) -->(friend:User) --> (friend_of_friend:User)
return  friend_of_friend

可變長關係   -[:TYPE * minHops .. maxHops]->

// 返回 1 至 2 跳的之內的用戶

match (me:User{id:1})  -[*1..2]->(n:User)
return n

// 返回 0跳用戶,就是返回本身

match (me:User{id:1})  -[*0]->(n:User)
return n

//返回至少有 2跳的用戶

match (me:User)  -[*2..]-> (n:User)        // -[*2..]-> 等於 -[*2]->
return me     

//返回小於 2跳的用戶, 注意不包含 0跳用戶, 若是要包含應該是  -[*0..2]->

match (me:User)  -[*..2]->(n:User)            // -[*..2]-> 等於 -[*1..2]->
return me       

// 返回數據庫中節點的id。 注意neo4j 會重用已經刪除的節點的id

match (me:User)
where me.id = 3
return id(me)

返回指定用戶的全部關係 

match (u1:User) -[*]-> (u2:User)
where u1.id = 1                     
// -[*]-> 表示跳數不限制
return *           

match (u1:User) --> (u2:User) where u1.id = 1 return *                     //只表示返回用戶自己,及其1跳的用戶

返回找到指定用戶,返回跳數大於2的路徑

match p=(u1:User)-[*2]->(u2:User)
where u1.id = 1
return p

// 指定兩個節點,找出其最短路徑

match (u1:User),(u2:User),sp = shortestPath((u1)-[*]->(u2))
where u1.id = 1 and u2.id = 3  
return sp

//帶斷言的最短路徑

 

//全部最短路徑

match (u1:User),(u2:User),p = allShortestPaths((u1) -[*]-> (u2) )
where u1.id = 1 and u2.id = 3  
return p

//模式過濾,注意 where 中的模式是過濾 match 以後的結果

match (u),(o)
where u.id in [1,2] and not (u)-->(o)
return *

optinal match

用於搜索模式中描述的匹配項,對於找不到的項目用null 代替

match (me:User) where me.id = 32 optional match (me)-->(o)  return o

相關文章
相關標籤/搜索