Cypher查詢語言 Neo4j中的SQL(3)

2021-06-04 02:17:01 字數 1773 閱讀 9838

如果需要從查詢的資料的圖中過濾,可以在查詢語句中新增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(4)

查詢中的返回部分,返回途中定義的感興趣的部分。可以為節點 關係或其上的屬性。圖返回乙個節點,在返回語句中列出即可。查詢 start n node 2 return n 結果 查詢 start n node 1 match n r knows c return r 結果 查詢 start n node...