




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Neo4j Cypher查詢語言詳解 Cypher介紹“Cypher”是一個描述性的圖形查詢語言,允許不必編寫圖形結(jié)構(gòu)的遍歷代碼對圖形存儲有表現(xiàn)力和效率的查詢。Cypher還在繼續(xù)發(fā)展和成熟,這也就意味著有可能會出現(xiàn)語法的變化。同時也意味著作為組件沒有經(jīng)歷嚴格的性能測試。Cypher設(shè)計的目的是一個人類查詢語言,適合于開發(fā)者和在數(shù)據(jù)庫上做點對點模式(ad-hoc)查詢的專業(yè)操作人員(我認為這個很重要)。它的構(gòu)念是基于英語單詞和靈巧的圖解。Cyper通過一系列不同的方法和建立于確定的實踐為表達查詢而激發(fā)的。許多關(guān)鍵字如like和order by是受SQL的啟發(fā)。模式匹配的表達式來自于S
2、PARQL。正則表達式匹配實現(xiàn)實用Scala programming language語言。Cypher是一個申明式的語言。對比命令式語言如Java和腳本語言如Gremlin和JRuby,它的焦點在于從圖中如何找回(what to retrieve),而不是怎么去做。這使得在不對用戶公布的實現(xiàn)細節(jié)里關(guān)心的是怎么優(yōu)化查詢。這個查詢語言包含以下幾個明顯的部分:§ START:在圖中的開始點,通過元素的ID或所以查找獲得。§ MATCH:圖形的匹配模式,束縛于開始點。§ WHERE:過濾條件。§ RETURN:返回所需要的。在下例中看三個關(guān)鍵字示例圖片如下:如
3、:這個有個查詢,通過遍歷圖找到索引里一個叫John的朋友的朋友(不是他的直接朋友),返回John和找到的朋友的朋友。START john=node:node_auto_index(name = 'John')MATCH john-:friend->()-:friend->fofRETURN john, fof返回結(jié)果:下一步添加過濾:在下一個例子中,列出一組用戶的id并遍歷圖查找這些用戶接出friend關(guān)系線,返回有屬性name并且其值是以S開始的用戶。START user=node(5,4,1,2,3)MATCH user-:friend->follower
4、WHERE = /S.*/RETURN user, 返回結(jié)果:操作符Cypher中的操作符有三個不同種類:數(shù)學(xué),相等和關(guān)系。數(shù)學(xué)操作符有+,-,*,/和%。當然只有+對字符有作用。等于操作符有=,<>,<,>,<=,>=。因為Neo4j是一個模式少的圖形數(shù)據(jù)庫,Cypher有兩個特殊的操作符?和!。有些是用在屬性上,有些事用于處理缺少值。對于一個不存在的屬性做比較會導(dǎo)致錯誤。為替代與其他什么做比較時總是檢查屬性是否存在,在缺失屬性時問號將使得比較總是返回true,感嘆號使得比較總是返回false。WHER
5、Ep? = "foo"這個斷言在屬性缺失情況下將評估為true。WHEREp! = "foo"這個斷言在屬性缺失情況下將評估為false。警告:在同一個比較中混合使用兩個符號將導(dǎo)致不可預(yù)料的結(jié)果。參數(shù)Cypher支持帶參數(shù)的查詢。這允許開發(fā)者不需要必須構(gòu)建一個string的查詢,并且使得Cypher的查詢計劃的緩存更容易。參數(shù)可以在where子句,start子句的索引key或索引值,索引查詢中作為節(jié)點/關(guān)系id的引用。以下是幾個在java中使用參數(shù)的示例:節(jié)點id參數(shù)Map<String, Object> params =
6、 new HashMap<String, Object>();params.put( "id", 0 );ExecutionResult result = engine.execute( "start n=node(id) return ", params );節(jié)點對象參數(shù)Map<String, Object> params = new HashMap<String, Object>();params.put( "node", andreasNode );ExecutionResult
7、result = engine.execute( "start n=node(node) return ", params );多節(jié)點id參數(shù)Map<String, Object> params = new HashMap<String, Object>();params.put( "id", Arrays.asList( 0, 1, 2 ) );ExecutionResult result = engine.execute( "start n=node(id) return ", pa
8、rams );字符串參數(shù)Map<String, Object> params = new HashMap<String, Object>();params.put( "name", "Johan" );ExecutionResult result = engine.execute( "start n=node(0,1,2) where = name return n", params );索引鍵值參數(shù)Map<String, Object> params = new HashMap<
9、;String, Object>();params.put( "key", "name" );params.put( "value", "Michaela" );ExecutionResult result = engine.execute( "start n=node:people(key = value) return n", params );索引查詢參數(shù)Map<String, Object> params = new HashMap<String, Object&
10、gt;();params.put( "query", "name:Andreas" );ExecutionResult result = engine.execute( "start n=node:people(query) return n", params );§ SKIP 與LIMIT * 的數(shù)字參數(shù)Map<String, Object> params = new HashMap<String, Object>();params.put( "s", 1 );params.pu
11、t( "l", 1 );ExecutionResult result = engine.execute( "start n=node(0,1,2) return skip s limit l", params );§ 正則表達式參數(shù)Map<String, Object> params = new HashMap<String, Object>();params.put( "regex", ".*h.*" );ExecutionResult result = engin
12、e.execute( "start n=node(0,1,2) where = regex return ", params );標識符當你參考部分的模式時,需要通過命名完成。定義的不同的命名部分就被稱為標識符。如下例中:START n=node(1) MATCH n->b RETURN b標識符為n和b。標識符可以是大寫或小些,可以包含下劃線。當需要其他字符時可以使用符號。對于屬性名的規(guī)則也是一樣。注解可以在查詢語句中使用雙斜杠來添加注解。如:START n=node(1) RETURN b /這是行結(jié)束注釋START n=node(1)
13、RETURN bSTART n=node(1) WHERE perty = "/這部是一個注釋" RETURN bStart每一個查詢都是描述一個圖案(模式),在這個圖案(模式)中可以有多個限制點。一個限制點是為模式匹配的從開始點出發(fā)的一條關(guān)系或一個節(jié)點??梢酝ㄟ^id或索引查詢綁定點。通過id綁定點通過node(*)函數(shù)綁定一個節(jié)點作為開始點查詢:START n=node(1)RETURN n返回引用的節(jié)點。結(jié)果:通過id綁定關(guān)系可以通過relationship()函數(shù)綁定一個關(guān)系作為開始點。也可以通過縮寫rel()。查詢:START r=relationship
14、(0)RETURN rId為0的關(guān)系將被返回結(jié)果:通過id綁定多個節(jié)點選擇多個節(jié)點可以通過逗號分開。查詢:START n=node(1, 2, 3)RETURN n結(jié)果:所有節(jié)點得到所有節(jié)點可以通過星號(*),同樣對于關(guān)系也適用。查詢:START n=node(*)RETURN n這個查詢將返回圖中所有節(jié)點。結(jié)果:通過索引查詢獲取節(jié)點如果開始節(jié)點可以通過索引查詢得到,可以如此來寫:node:index-name(key=”value”)。在此列子中存在一個節(jié)點索引叫nodes。查詢:START n=node:nodes(name = "A")RETURN n索引中命名為A的
15、節(jié)點將被返回。結(jié)果:通過索引查詢獲取關(guān)系如果開始點可以通過索引查詢得到,可以如此做:Relationship:index-name(key=”value”)。查詢:START r=relationship:rels(property ="some_value")RETURN r索引中屬性名為”some_value”的關(guān)系將被返回。結(jié)果:多個開始點有時需要綁定多個開始點。只需要列出并以逗號分隔開。查詢:START a=node(1), b=node(2)RETURN a,bA和B兩個節(jié)點都將被返回。結(jié)果:Match在一個查詢的匹配(match)部分申明圖形(模式)。模式的申明
16、導(dǎo)致一個或多個以逗號隔開的路徑(path)。節(jié)點標識符可以使用或者不是用圓括號。使用圓括號與不使用圓括號完全對等,如:MATCH(a)->(b) 與 MATCH a->b 匹配模式完全相同。模式的所有部分都直接或者間接地綁定到開始點上。可選關(guān)系是一個可選描述模式的方法,但在真正圖中可能沒有匹配(節(jié)點可能沒有或者沒有此類關(guān)系時),將被估值為null。與SQL中的外聯(lián)結(jié)類似,如果Cypher發(fā)現(xiàn)一個或者多個匹配,將會全部返回。如果沒有匹配,Cypher將返回null。如以下例子,b和p都是可選的病都可能包含null:START a=node(1) MATCH p = a-?->b
17、START a=node(1) MATCH p = a-*?->bSTART a=node(1) MATCH p = a-?->x->bSTART a=node(1), x=node(100) MATCH p = shortestPath( a-*?->x )相關(guān)節(jié)點符號意味著相關(guān)性,不需要關(guān)心方向和類型。查詢:START n=node(3)MATCH (n)-(x)RETURN x所有與A相關(guān)節(jié)點都被返回。結(jié)果:接出關(guān)系(Outgong relationship)當對關(guān)系的方向感興趣時,可以使用->或<-符號,如:查詢:START n=node(3)MAT
18、CH (n)->(x)RETURN x所有A的接出關(guān)系到達的節(jié)點將被返回.結(jié)果:定向關(guān)系和標識符如果需要關(guān)系的標識符,為了過濾關(guān)系的屬性或為了返回關(guān)系,可如下例使用標識符。查詢:START n=node(3)MATCH (n)-r->()RETURN r所有從節(jié)點A接出的關(guān)系將被返回。結(jié)果:通過關(guān)系類型匹配當已知關(guān)系類型并想通過關(guān)系類型匹配時,可以通過冒號詳細描述。查詢:START n=node(3)MATCH (n)-:BLOCKS->(x)RETURN x返回A接出關(guān)系類型為BLOCKS的節(jié)點。結(jié)果:通過關(guān)系類型匹配和使用標識符如果既想獲得關(guān)系又要通過已知的關(guān)系類型,那就
19、都添加上,如:查詢:START n=node(3)MATCH (n)-r:BLOCKS->()RETURN r所有從A接出的關(guān)系為BLOCKS的關(guān)系都被返回。結(jié)果:帶有特殊字符的關(guān)系類型有時候數(shù)據(jù)庫中有非字母字符類型,或有空格在內(nèi)時,使用單引號。查詢:START n=node(3)MATCH (n)-r:TYPE WITH SPACE IN IT->()RETURN r返回類型有空格的關(guān)系。結(jié)果:多重關(guān)系關(guān)系可以通過使用在()()多個語句來表達,或可以串在一起。如下:查詢:START a=node(3)MATCH (a)-:KNOWS->(b)-:KNOWS->(c)R
20、ETURN a,b,c路徑中的三個節(jié)點。結(jié)果:可變長度的關(guān)系可變數(shù)量的關(guān)系->節(jié)點可以使用-:TYPE*minHops.maxHops->。查詢:START a=node(3), x=node(2, 4)MATCH a-:KNOWS*1.3->xRETURN a,x如果在1到3的關(guān)系中存在路徑,將返回開始點和結(jié)束點。結(jié)果:在可變長度關(guān)系的關(guān)系標識符當連接兩個節(jié)點的長度是可變的不確定的時,可以使用一個關(guān)系標識符遍歷所有關(guān)系。查詢:START a=node(3), x=node(2, 4)MATCH a-r:KNOWS*1.3->xRETURN r如果在1到3的關(guān)系中存在路
21、徑,將返回開始點和結(jié)束點。結(jié)果:零長度路徑當使用可變長度路徑,可能其路徑長度為0,這也就是說兩個標識符指向的為同一個節(jié)點。如果兩點間的距離為0,可以確定這是同一個節(jié)點。查詢:START a=node(3)MATCH p1=a-:KNOWS*0.1->b, p2=b-:BLOCKS*0.1->cRETURN a,b,c, length(p1), length(p2)這個查詢將返回四個路徑,其中有些路徑長度為0.結(jié)果:可選關(guān)系如果關(guān)系為可選的,可以使用問號表示。與SQL的外連接類似。如果關(guān)系存在,將被返回。如果不存在在其位置將以null代替。查詢:START a=node(2)MATC
22、H a-?->xRETURN a,x返回一個節(jié)點和一個null,因為這個節(jié)點沒有關(guān)系。結(jié)果:可選類型和命名關(guān)系通過一個正常的關(guān)系,可以決定哪個標識符可以進入,那些關(guān)系類型是需要的。查詢:START a=node(3)MATCH a-r?:LOVES->()RETURN a,r返回一個節(jié)點和一個null,因為這個節(jié)點沒有關(guān)系。結(jié)果:可選元素的屬性返回可選元素上的屬性,null值將返回null。查詢:START a=node(2)MATCH a-?->xRETURN x, 元素x在查詢中為null,所有其屬性name為null。結(jié)果:復(fù)雜匹配在Cypher中,可喲通過
23、更多復(fù)雜模式來匹配,像一個鉆石形狀模式。查詢:START a=node(3)MATCH (a)-:KNOWS->(b)-:KNOWS->(c),(a)-:BLOCKS-(d)-:KNOWS-(c)RETURN a,b,c,d路徑中的四個節(jié)點。結(jié)果:最短路徑使用shortestPath函數(shù)可以找出一條兩個節(jié)點間的最短路徑,如下。查詢:START d=node(1), e=node(2)MATCH p = shortestPath( d-*.15->e )RETURN p這意味著:找出兩點間的一條最短路徑,最大關(guān)系長度為15.圓括號內(nèi)是一個簡單的路徑連接,開始節(jié)點,連接關(guān)系和結(jié)束
24、節(jié)點。關(guān)系的字符描述像關(guān)系類型,最大數(shù)和方向在尋找最短路徑中都將被用到。也可以標識路徑為可選。結(jié)果:所有最但路徑找出兩節(jié)點節(jié)點所有的最短路徑。查詢:START d=node(1), e=node(2)MATCH p = allShortestPaths( d-*.15->e )RETURN p這將在節(jié)點d與e中找到兩條有方向的路徑。結(jié)果:命名路徑如果想在模式圖上的路徑進行過濾或者返回此路徑,可以使用命名路徑(named path)。查詢:START a=node(3)MATCH p = a->bRETURN p開始節(jié)點的兩個路徑。結(jié)果:在綁定關(guān)系上的匹配當模式中包含一個綁定關(guān)系時,
25、此關(guān)系模式?jīng)]有明確的方向,Cypher將嘗試著切換連接節(jié)點的邊匹配關(guān)系。查詢:START a=node(3), b=node(2)MATCH a-?:KNOWS-x-?:KNOWS-bRETURN x將返回兩個連接節(jié)點,一次為開始節(jié)點,一次為結(jié)束節(jié)點。結(jié)果:Where如果需要從查找的數(shù)據(jù)的圖中過濾,可以在查詢語句中添加where子句。圖:Boolean 操作類型可以使用boolean操作符and 和 or 或者也可以使用not()函數(shù)。查詢:START n=node(3, 1)WHERE (n.age < 30 and = "Tobias") ornot
26、( = "Tobias")RETURN n返回節(jié)點。結(jié)果:節(jié)點屬性上的過濾查詢:START n=node(3, 1)WHERE n.age < 30RETURN n結(jié)果:正則表達式可以通過使用= /regexp/來匹配正在表達式。如下:查詢:START n=node(3, 1)WHERE = /Tob.*/RETURN n返回名叫Tobias的節(jié)點。結(jié)果: 轉(zhuǎn)義正則表達式如果在正則表達式中需要有斜杠時可以通過轉(zhuǎn)義實現(xiàn)。查詢:START n=node(3, 1)WHERE = /Some/thing/RETURN n沒有
27、匹配的節(jié)點返回。結(jié)果:不分大小些正則表達式在正則表達式前加上?i,整個正則表達式將會忽略大小寫。查詢:START n=node(3, 1)WHERE = /(?i)ANDR.*/RETURN n屬性name為Andres的節(jié)點將返回結(jié)果: 關(guān)系類型上的過濾可以match模式中通過添加具體的關(guān)系類型,但有時需要針對類型的更加高級的過濾。可以使用明確的type屬性來對比,查詢對關(guān)系類型名作一個正則比較。查詢:START n=node(3)MATCH (n)-r->()WHERE type(r) = /K.*/RETURN r關(guān)系整個以K開始的類型名都將返回。結(jié)果:
28、160;屬性存在性查詢:START n=node(3, 1)WHERE n.beltRETURN n結(jié)果:如果缺失屬性默認為true僅當屬性存在時,比較一個圖的元素的此屬性,使用允許空屬性的語法。查詢:START n=node(3, 1)WHERE n.belt? = 'white'RETURN n所有節(jié)點即使沒有belt屬性的 都將返回。此類比較返回為true。結(jié)果: 如果缺失屬性默認為false需要在缺失屬性時為false,即不想返回此屬性不存在的節(jié)點時。使用感嘆號。查詢:START n=node(3, 1)WHERE n.belt! = 'white
29、39;RETURN n結(jié)果: 空置null過濾有時候需要測試值或者標識符是否為null。與sql類似使用 is null 或 not(is null x)也能起作用。查詢:START a=node(1), b=node(3, 2)MATCH a<-r?-bWHERE r is nullRETURN bTobias節(jié)點沒有鏈接上。結(jié)果: 關(guān)系過濾為過濾兩點間基于關(guān)系的子圖,在match子句中使用限制部分。可以描述帶方向的關(guān)系和可能的類型。這些都是有效的表達:WHERE a-b WHERE a-b WHERE a:KNOWS-bWHERE a-:KNOWS-b查詢:STA
30、RT a=node(1), b=node(3, 2)WHERE a<-bRETURN bTobias節(jié)點沒有鏈接結(jié)果: neo4j 綜合目錄1. 返回節(jié)點2. 返回關(guān)系3. 返回屬性4. 帶特殊字符的標識符5. 列的別名6. 可選屬性7. 特別的結(jié)果 查詢中的返回部分,返回途中定義的感興趣的部分??梢詾楣?jié)點、關(guān)系或其上的屬性。圖返回節(jié)點返回一個節(jié)點,在返回語句中列出即可。查詢:START n=node(2)RETURN n 結(jié)果:返回關(guān)系查詢:START n=node(1)MATCH (n)-r:KNOWS->(c)RETURN r結(jié)果:返
31、回屬性查詢:START n=node(1)RETURN 結(jié)果:帶特殊字符的標識符使用不在英語字符表中的字符,可以使用單引號。查詢:START This isn't a commonidentifier=node(1)RETURN This isn't a commonidentifier.<<!_?>>結(jié)果:列的別名可以給展示出來的列名起別名。查詢:START a=node(1)RETURN a.age AS SomethingTotallyDifferent 返回節(jié)點的age屬性,但重命名列名。結(jié)果:可選屬性屬
32、性在節(jié)點上可能存在也可能不存在,可以使用問號來標識標識符即可。查詢:START n=node(1, 2)RETURN n.age?如果存在age屬性,則返回,不存在則返回null。結(jié)果:特別的結(jié)果DISTINCT 僅檢索特別的行,基于選擇輸出的列。查詢:START a=node(1)MATCH (a)->(b)RETURN distinct b返回name為B的節(jié)點,但僅為一次。結(jié)果:neo4j 聚合函數(shù)目錄1. 聚合Aggregation1. 計數(shù)2. 計算節(jié)點數(shù)3. 分組計算關(guān)系類型4. 計算實體數(shù)5. 計算非空可以值數(shù)6. 求和sum7. 平均值avg8. 最大值max9
33、. 最小值min10. 聚類COLLECT11. 相異DISTINCT聚合(Aggregation)為集合計算數(shù)據(jù),Cypher提供聚類功能,與SQL的group by類似。在return語句中發(fā)現(xiàn)的任何聚類函數(shù),所有沒有聚類函數(shù)的列將作為聚合key使用。圖:計數(shù)計數(shù)(count)使用來計算行數(shù)。Count有兩種使用方法。Count(*)計算匹配的行的行數(shù),count(<標識符>)計算標識符中非空值數(shù)。計算節(jié)點數(shù)計算鏈接到一個節(jié)點的節(jié)點數(shù),可以使用count(*)。查詢:START n=node(2)MATCH (n)->(x)RETURN n, count(*)
34、返回開始節(jié)點和相關(guān)節(jié)點節(jié)點數(shù)。結(jié)果:分組計算關(guān)系類型計算分組了得關(guān)系類型,返回關(guān)系類型并使用count(*)計算。查詢:START n=node(2)MATCH (n)-r->()RETURN type(r), count(*) 返回關(guān)系類型和其分組數(shù)。結(jié)果:計算實體數(shù)相比使用count(*),可能計算標識符更實在。查詢:START n=node(2)MATCH (n)->(x)RETURN count(x) 返回鏈接到開始節(jié)點上的節(jié)點數(shù)結(jié)果:計算非空可以值數(shù)查詢:START n=node(2,3,4,1)RETURN count(perty?)
35、60;結(jié)果:求和(sum)Sum集合簡單計算數(shù)值類型的值。Null值將自動去掉。如下:查詢:START n=node(2,3,4)RETURN sum(perty) 計算所有節(jié)點屬性值之和。結(jié)果:平均值(avg)Avg計算數(shù)量列的平均值查詢:START n=node(2,3,4)RETURN avg(perty) 結(jié)果:最大值(max)Max查找數(shù)字列中的最大值。查詢:START n=node(2,3,4)RETURN max(perty) 結(jié)果:最小值(min)Min使用數(shù)字屬性作為輸入,并返回在列中最小的值。查詢:START n=
36、node(2,3,4)RETURN min(perty) 結(jié)果:聚類(COLLECT)Collect將所有值收集到一個集合list中。查詢:START n=node(2,3,4)RETURN collect(perty) 返回一個帶有所有屬性值的簡單列。結(jié)果:相異(DISTINCT)聚合函數(shù)中使用distinct來去掉值中重復(fù)的數(shù)據(jù)。查詢:START a=node(2)MATCH a->bRETURN count(distinct b.eyes) 結(jié)果:neo4j 高級篇目錄1. 排序Order by1. 通過節(jié)點屬性排序節(jié)點2. 通過多
37、節(jié)點屬性排序節(jié)點3. 倒序排列節(jié)點4. 空值排序2. Skip1. 跳過前三個2. 返回中間兩個3. Limit1. 返回第一部分4. 函數(shù)Functions1. 判斷2. All3. Any4. None5. Single6. Scalar函數(shù)7. Length8. Type9. Id10. Coalesce11. Iterable函數(shù)12. Nodes13. Relationships14. Extract排序(Order by)輸出結(jié)果排序可以使用order by 子句。注意,不能使用節(jié)點或者關(guān)系排序,僅僅只針對其屬性有效。圖:通過節(jié)點屬性排序節(jié)點查詢:START n=node(3,1,
38、2)RETURN nORDER BY 結(jié)果:通過多節(jié)點屬性排序節(jié)點在order by子句中可以通過多個屬性來排序每個標識符。Cypher首先將通過第一個標識符排序,如果第一個標識符或?qū)傩韵嗟龋瑒t在order by中檢查下一個屬性,依次類推。查詢:START n=node(3,1,2)RETURN nORDER BY n.age, 首先通過age排序,然后再通過name排序。結(jié)果:倒序排列節(jié)點可以在標識符后添加desc或asc來進行倒序排列或順序排列。查詢:START n=node(3,1,2)RETURN nORDER BY DES
39、C 結(jié)果: 空值排序當排列結(jié)果集時,在順序排列中null將永遠放在最后,而在倒序排列中放最前面。查詢:START n=node(3,1,2)RETURN n.length?, nORDER BY n.length? 結(jié)果: SkipSkip允許返回總結(jié)果集中的一個子集。此不保證排序,除非使用了order by子句。 圖:跳過前三個返回結(jié)果中一個子集,從第三個結(jié)果開始,語法如下:查詢:START n=node(3, 4, 5, 1, 2)RETURN nORDER BY SKIP 3 前三個節(jié)點將略過,最后兩個節(jié)點將被返回。結(jié)果:
40、160;返回中間兩個查詢:START n=node(3, 4, 5, 1, 2)RETURN nORDER BY SKIP 1LIMIT 2 中間兩個節(jié)點將被返回。結(jié)果: LimitLimit允許返回結(jié)果集中的一個子集。圖:返回第一部分查詢:START n=node(3, 4, 5, 1, 2)RETURN nLIMIT 3 結(jié)果:函數(shù)(Functions)在Cypher中有一組函數(shù),可分為三類不同類型:判斷、標量函數(shù)和聚類函數(shù)。圖:判斷判斷為boolean函數(shù),對給出的輸入集合做判斷并返回true或者false。常用在where子句中過濾子集。All
41、迭代測試集合中所有元素的判斷。語法:All(標識符 in iterable where 判斷)參數(shù):Ø iterable :一個集合屬性,或者可迭代的元素,或一個迭代函數(shù)。Ø 標識符:可用于判斷比較的標識符。Ø 判斷:一個測試所有迭代器中元素的判斷。查詢:START a=node(3), b=node(1)MATCH p=a-*1.3->bWHERE all(x in nodes(p) WHERE x.age > 30)RETURN p過濾包含age30的節(jié)點的路徑,返回符合條件路徑中所有節(jié)點。結(jié)果:Any語法:AN
42、Y(identifierin iterable WHERE predicate)參數(shù):Ø Iterable(迭代器):一個集合屬性,或者可迭代的元素,或一個迭代函數(shù)。Ø Identifier(標識符):可用于判斷比較的標識符。Ø Predicate(判斷):一個測試所有迭代器中元素的判斷。查詢:START a=node(2)WHERE any(x in a.array WHERE x = "one")RETURN a結(jié)果:None在迭代器中沒有元素判斷將返回true。語法:NONE(identifierin
43、iterable WHERE predicate)Ø Iterable(迭代器):一個集合屬性,或者可迭代的元素,或一個迭代函數(shù)。Ø Identifier(標識符):可用于判斷比較的標識符。Ø Predicate(判斷):一個測試所有迭代器中元素的判斷。查詢:START n=node(3)MATCH p=n-*1.3->bWHERE NONE(x in nodes(p) WHERE x.age = 25)RETURN p 結(jié)果:Single如果迭代器中僅有一個元素則返回true。語法:SINGLE(identifierin iterable WHERE predicate)參數(shù):Ø Iterable(迭代器):一個集合屬性,或者可迭代的元素,或一個迭代函數(shù)。Ø Identifier(標識符):可用于判斷比較的標識符。Ø Pre
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年醫(yī)療機構(gòu)質(zhì)量與安全協(xié)議
- 2025年度員工離職福利策劃與審核協(xié)議書
- 2025年品質(zhì)審核協(xié)議
- 2025年合法住宅轉(zhuǎn)租協(xié)議范本
- 2025年結(jié)束勞動協(xié)議
- 2025年中央空調(diào)設(shè)備供應(yīng)與安裝協(xié)議范本
- 2025年機械設(shè)備維護與拆除服務(wù)協(xié)議
- 國際化供應(yīng)鏈管理的創(chuàng)新實踐
- 精細化管理對糧食儲備效益提升的影響
- 社會變革中的文化創(chuàng)新與公眾參與
- 河南省修武縣西村鄉(xiāng)初中2024-2025學(xué)年九下5月語文中考模擬試題(含答案)
- Machine-Cmk-設(shè)備能力指數(shù)Cmk分析表
- 2025年全國保密教育線上培訓(xùn)考試試題庫【完整版】附帶答案詳解
- 江西省南昌市2025屆高三下學(xué)期二模生物試題 含解析
- 幼兒園小班科學(xué)領(lǐng)域《云朵和雨點》課件
- 2025屆蘇錫常鎮(zhèn)四市高考生物二模試卷含解析
- (二模)青島市2025年高三年級第二次適應(yīng)性檢測歷史試卷(含標準答案)
- DB23T 3945-2025 黑龍江省超低能耗居住建筑節(jié)能施工技術(shù)規(guī)程
- 2025-2030鞋靴行業(yè)市場發(fā)展分析及投融資與風(fēng)險研究報告
- 福建農(nóng)信招聘筆試真題2024
- 配資協(xié)議合同
評論
0/150
提交評論