如果需要從查詢的資料的圖中過濾,可以在查詢語句中新增where子句。
圖:可以使用boolean操作符and 和 or 或者也可以使用not()函式。
查詢:start n=node(3, 1)
where (n.age < 30 and n.name = "tobias") ornot(n.name = "tobias")
return n
返回節點。
結果:查詢:start n=node(3, 1)
where n.age < 30
return n
結果:可以通過使用=~ /regexp/
來匹配正在表示式。如下:
查詢:
start n=node(3, 1)
where n.name =~ /tob.*/
return n
返回名叫tobias的節點。
結果:如果在正規表示式中需要有斜槓時可以通過轉義實現。
查詢:start n=node(3, 1)
where n.name =~ /some\/thing/
return n
沒有匹配的節點返回。
結果:在正規表示式前加上?i,整個正規表示式將會忽略大小寫。
查詢:start n=node(3, 1)
where n.name =~ /(?i)andr.*/
return n
屬性name為andres的節點將返回
結果:可以match模式中通過新增具體的關係型別,但有時需要針對型別的更加高階的過濾。可以使用明確的type屬性來對比,查詢對關係型別名作乙個正則比較。
查詢:start n=node(3)
match (n)-[r]->()
where type(r) =~ /k.*/
return r
關係整個以k開始的型別名都將返回。
結果:查詢:start n=node(3, 1)
where n.belt
return n
結果:僅當屬性存在時,比較乙個圖的元素的此屬性,使用允許空屬性的語法。
查詢:start n=node(3, 1)
where n.belt? = 'white'
return n
所有節點即使沒有belt屬性的 都將返回。此模擬較返回為true。
結果:需要在缺失屬性時為false,即不想返回此屬性不存在的節點時。使用感嘆號。
查詢:start n=node(3, 1)
where n.belt! = 'white'
return n
結果:有時候需要測試值或者識別符號是否為null。與sql類似使用 is null 或 not(is null x)也能起作用。
查詢:start a=node(1), b=node(3, 2)
match a
where r is null
return b
tobias節點沒有鏈結上。
結果:為過濾兩點間基於關係的子圖,在match子句中使用限制部分。可以描述帶方向的關係和可能的型別。這些都是有效的表達:where a-→b where a←-b where a←[:knows]-bwhere a-[:knows]-b
查詢:start a=node(1), b=node(3, 2)
where a
return b
tobias節點沒有鏈結
結果:
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...
Cypher查詢語言 Neo4j 綜合 四
目錄 返回節點 返回關係 返回屬性 帶特殊字元的識別符號 列的別名 可選屬性 特別的結果 查詢中的返回部分,返回途中定義的感興趣的部分。可以為節點 關係或其上的屬性。圖返回乙個節點,在返回語句中列出即可。查詢 start n node 2 return n 結果 查詢 start n node 1 ...
Cypher查詢語言 Neo4j中的SQL(3)
如果需要從查詢的資料的圖中過濾,可以在查詢語句中新增where子句。圖 可以使用boolean操作符and 和 or 或者也可以使用not 函式。查詢 start n node 3,1 where n.age 30 and n.name tobias ornot n.name tobias retu...