日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Cypher查询语言--Neo4j-WHERE(三)

發布時間:2023/12/9 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Cypher查询语言--Neo4j-WHERE(三) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • Where
  • Boolean 操作類型
  • 節點屬性上的過濾
  • 正則表達式
  • 轉義正則表達式
  • 不分大小些正則表達式
  • 關系類型上的過濾
  • 屬性存在性
  • 如果缺失屬性默認為true
  • 如果缺失屬性默認為false
  • 空置null過濾
  • 關系過濾
  • Where

    如果需要從查找的數據的圖中過濾,可以在查詢語句中添加where子句。

    圖:

    ?

    Boolean 操作類型

    可以使用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

    結果:

    如果缺失屬性默認為true

    僅當屬性存在時,比較一個圖的元素的此屬性,使用允許空屬性的語法。

    查詢:

    START n=node(3, 1)

    WHERE n.belt? = 'white'

    RETURN n

    所有節點即使沒有belt屬性的 都將返回。此類比較返回為true。

    結果:

    ?

    如果缺失屬性默認為false

    需要在缺失屬性時為false,即不想返回此屬性不存在的節點時。使用感嘆號。

    查詢:

    START n=node(3, 1)

    WHERE n.belt! = 'white'

    RETURN n

    結果:

    ?

    空置null過濾

    有時候需要測試值或者標識符是否為null。與sql類似使用 is null 或 not(is null x)也能起作用。

    查詢:

    START a=node(1), b=node(3, 2)

    MATCH a<-[r?]-b

    WHERE r is null

    RETURN b

    Tobias節點沒有鏈接上。

    結果:

    ?

    關系過濾

    為過濾兩點間基于關系的子圖,在match子句中使用限制部分??梢悦枋鰩Х较虻年P系和可能的類型。這些都是有效的表達:WHERE a-→b WHERE a←-b WHERE a←[:KNOWS]-bWHERE a-[:KNOWS]-b

    查詢:

    START a=node(1), b=node(3, 2)

    WHERE a<--b

    RETURN b

    Tobias節點沒有鏈接

    結果:

    轉載于:https://www.cnblogs.com/divenswu/p/3441755.html

    總結

    以上是生活随笔為你收集整理的Cypher查询语言--Neo4j-WHERE(三)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。