Neoj-Cypher查詢語言詳解_第1頁
Neoj-Cypher查詢語言詳解_第2頁
Neoj-Cypher查詢語言詳解_第3頁
Neoj-Cypher查詢語言詳解_第4頁
Neoj-Cypher查詢語言詳解_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、Neo4j Cypher查詢語言詳解 Cypher介紹“Cypher是一個描述性的圖形查詢語言,允許不必編寫圖形結(jié)構(gòu)的遍歷代碼對圖形存儲有表現(xiàn)力和效率的查詢。Cypher還在繼續(xù)開展和成熟,這也就意味著有可能會出現(xiàn)語法的變化。同時也意味著作為組件沒有經(jīng)歷嚴格的性能測試。Cypher設計的目的是一個人類查詢語言,適合于開發(fā)者和在數(shù)據(jù)庫上做點對點模式ad-hoc查詢的專業(yè)操作人員我認為這個很重要。它的構(gòu)念是基于英語單詞和靈巧的圖解。Cyper通過一系列不同的方法和建立于確定的實踐為表達查詢而激發(fā)的。許多關鍵字如like和order by是受SQL的啟發(fā)。模式匹配的表達式來自于SPARQL

2、。正那么表達式匹配實現(xiàn)實用Scala programming language語言。Cypher是一個申明式的語言。比照命令式語言如Java和腳本語言如Gremlin和JRuby,它的焦點在于從圖中如何找回what to retrieve,而不是怎么去做。這使得在不對用戶公布的實現(xiàn)細節(jié)里關心的是怎么優(yōu)化查詢。這個查詢語言包含以下幾個明顯的局部:§ START:在圖中的開始點,通過元素的ID或所以查找獲得。§ MATCH:圖形的匹配模式,束縛于開始點。§ WHERE:過濾條件。§ RETURN:返回所需要的。在下例中看三個關鍵字例如圖片如下:如:這個有個查

3、詢,通過遍歷圖找到索引里一個叫John的朋友的朋友不是他的直接朋友,返回John和找到的朋友的朋友。START john=node:node_auto_index(name = 'John')MATCH john-:friend->()-:friend->fofRETURN john, fof返回結(jié)果:下一步添加過濾:在下一個例子中,列出一組用戶的id并遍歷圖查找這些用戶接出friend關系線,返回有屬性name并且其值是以S開始的用戶。START user=node(5,4,1,2,3)MATCH user-:friend->followerWHERE fo

4、 = /S.*/RETURN user, 返回結(jié)果:操作符Cypher中的操作符有三個不同種類:數(shù)學,相等和關系。數(shù)學操作符有+,-,*,/和%。當然只有+對字符有作用。等于操作符有=,<>,<,>,<=,>=。因為Neo4j是一個模式少的圖形數(shù)據(jù)庫,Cypher有兩個特殊的操作符?和!。有些是用在屬性上,有些事用于處理缺少值。對于一個不存在的屬性做比擬會導致錯誤。為替代與其他什么做比擬時總是檢查屬性是否存在,在缺失屬性時問號將使得比擬總是返回true,感慨號使得比擬總是返回false。WHEREp?

5、 = "foo"這個斷言在屬性缺失情況下將評估為true。WHEREp! = "foo"這個斷言在屬性缺失情況下將評估為false。警告:在同一個比擬中混合使用兩個符號將導致不可預料的結(jié)果。參數(shù)Cypher支持帶參數(shù)的查詢。這允許開發(fā)者不需要必須構(gòu)建一個string的查詢,并且使得Cypher的查詢方案的緩存更容易。參數(shù)可以在where子句,start子句的索引key或索引值,索引查詢中作為節(jié)點/關系id的引用。以下是幾個在java中使用參數(shù)的例如:節(jié)點id參數(shù)Map<String, Object> params = new Has

6、hMap<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 result =

7、 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 ", params );字

8、符串參數(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<String,

9、 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>();pa

10、rams.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.put( "

11、;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 = engine.execu

12、te( "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) RETURN

13、 bSTART n=node(1) WHERE perty = "/這部是一個注釋" RETURN bStart每一個查詢都是描述一個圖案模式,在這個圖案模式中可以有多個限制點。一個限制點是為模式匹配的從開始點出發(fā)的一條關系或一個節(jié)點。可以通過id或索引查詢綁定點。通過id綁定點通過node(*)函數(shù)綁定一個節(jié)點作為開始點查詢:START n=node(1)RETURN n返回引用的節(jié)點。結(jié)果:通過id綁定關系可以通過relationship()函數(shù)綁定一個關系作為開始點。也可以通過縮寫rel()。查詢:START r=relationship(0)RETURN

14、rId為0的關系將被返回結(jié)果:通過id綁定多個節(jié)點選擇多個節(jié)點可以通過逗號分開。查詢:START n=node(1, 2, 3)RETURN n結(jié)果:所有節(jié)點得到所有節(jié)點可以通過星號*,同樣對于關系也適用。查詢: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的節(jié)點將被返回。結(jié)果:通過索引

15、查詢獲取關系如果開始點可以通過索引查詢得到,可以如此做:Relationship:index-name(key=value)。查詢:START r=relationship:rels(property ="some_value")RETURN r索引中屬性名為some_value的關系將被返回。結(jié)果:多個開始點有時需要綁定多個開始點。只需要列出并以逗號分隔開。查詢:START a=node(1), b=node(2)RETURN a,bA和B兩個節(jié)點都將被返回。結(jié)果:Match在一個查詢的匹配match局部申明圖形模式。模式的申明導致一個或多個以逗號隔開的路徑path。節(jié)點

16、標識符可以使用或者不是用圓括號。使用圓括號與不使用圓括號完全對等,如:MATCH(a)->(b) 與 MATCH a->b 匹配模式完全相同。模式的所有局部都直接或者間接地綁定到開始點上??蛇x關系是一個可選描述模式的方法,但在真正圖中可能沒有匹配節(jié)點可能沒有或者沒有此類關系時,將被估值為null。與SQL中的外聯(lián)結(jié)類似,如果Cypher發(fā)現(xiàn)一個或者多個匹配,將會全部返回。如果沒有匹配,Cypher將返回null。如以下例子,b和p都是可選的病都可能包含null:START a=node(1) MATCH p = a-?->bSTART a=node(1) MATCH p =

17、a-*?->bSTART a=node(1) MATCH p = a-?->x->bSTART a=node(1), x=node(100) MATCH p = shortestPath( a-*?->x )相關節(jié)點符號意味著相關性,不需要關心方向和類型。查詢:START n=node(3)MATCH (n)-(x)RETURN x所有與A相關節(jié)點都被返回。結(jié)果:接出關系Outgong relationship當對關系的方向感興趣時,可以使用->或<-符號,如:查詢:START n=node(3)MATCH (n)->(x)RETURN x所有A的接出

18、關系到達的節(jié)點將被返回.結(jié)果:定向關系和標識符如果需要關系的標識符,為了過濾關系的屬性或為了返回關系,可如下例使用標識符。查詢:START n=node(3)MATCH (n)-r->()RETURN r所有從節(jié)點A接出的關系將被返回。結(jié)果:通過關系類型匹配當關系類型并想通過關系類型匹配時,可以通過冒號詳細描述。查詢:START n=node(3)MATCH (n)-:BLOCKS->(x)RETURN x返回A接出關系類型為BLOCKS的節(jié)點。結(jié)果:通過關系類型匹配和使用標識符如果既想獲得關系又要通過的關系類型,那就都添加上,如:查詢:START n=node(3)MATCH (

19、n)-r:BLOCKS->()RETURN r所有從A接出的關系為BLOCKS的關系都被返回。結(jié)果:帶有特殊字符的關系類型有時候數(shù)據(jù)庫中有非字母字符類型,或有空格在內(nèi)時,使用單引號。查詢:START n=node(3)MATCH (n)-r:TYPE WITH SPACE IN IT->()RETURN r返回類型有空格的關系。結(jié)果:多重關系關系可以通過使用在()()多個語句來表達,或可以串在一起。如下:查詢:START a=node(3)MATCH (a)-:KNOWS->(b)-:KNOWS->(c)RETURN a,b,c路徑中的三個節(jié)點。結(jié)果:可變長度的關系可變

20、數(shù)量的關系->節(jié)點可以使用-:TYPE*minHops.maxHops->。查詢:START a=node(3), x=node(2, 4)MATCH a-:KNOWS*1.3->xRETURN a,x如果在1到3的關系中存在路徑,將返回開始點和結(jié)束點。結(jié)果:在可變長度關系的關系標識符當連接兩個節(jié)點的長度是可變的不確定的時,可以使用一個關系標識符遍歷所有關系。查詢:START a=node(3), x=node(2, 4)MATCH a-r:KNOWS*1.3->xRETURN r如果在1到3的關系中存在路徑,將返回開始點和結(jié)束點。結(jié)果:零長度路徑當使用可變長度路徑,可

21、能其路徑長度為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é)果:可選關系如果關系為可選的,可以使用問號表示。與SQL的外連接類似。如果關系存在,將被返回。如果不存在在其位置將以null代替。查詢:START a=node(2)MATCH a-?->xRETURN a,x返回一個節(jié)點和一個nu

22、ll,因為這個節(jié)點沒有關系。結(jié)果:可選類型和命名關系通過一個正常的關系,可以決定哪個標識符可以進入,那些關系類型是需要的。查詢:START a=node(3)MATCH a-r?:LOVES->()RETURN a,r返回一個節(jié)點和一個null,因為這個節(jié)點沒有關系。結(jié)果:可選元素的屬性返回可選元素上的屬性,null值將返回null。查詢:START a=node(2)MATCH a-?->xRETURN x, 元素x在查詢中為null,所有其屬性name為null。結(jié)果:復雜匹配在Cypher中,可喲通過更多復雜模式來匹配,像一個鉆石形狀模式。查詢:START a=n

23、ode(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這意味著:找出兩點間的一條最短路徑,最大關系長度為15.圓括號內(nèi)是一個簡單的路徑連接,開始節(jié)點,連接關系和結(jié)束節(jié)點。關系的字符描述像關系類型,最大數(shù)和方向在尋找最短路徑中都將

24、被用到。也可以標識路徑為可選。結(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é)果:在綁定關系上的匹配當模式中包含一個綁定關系時,此關系模式?jīng)]有明確的方向,Cypher將嘗試著切換連接節(jié)點的邊匹配關

25、系。查詢: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( = "Tobias")RETURN

26、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沒有匹配的節(jié)點返回。結(jié)果:不分大小些正那么表達式在正那么表達式前加上?

27、i,整個正那么表達式將會忽略大小寫。查詢:START n=node(3, 1)WHERE = /(?i)ANDR.*/RETURN n屬性name為Andres的節(jié)點將返回結(jié)果: 關系類型上的過濾可以match模式中通過添加具體的關系類型,但有時需要針對類型的更加高級的過濾。可以使用明確的type屬性來比照,查詢對關系類型名作一個正那么比擬。查詢:START n=node(3)MATCH (n)-r->()WHERE type(r) = /K.*/RETURN r關系整個以K開始的類型名都將返回。結(jié)果: 屬性存在性查詢:START n=node(3, 1

28、)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'RETURN n結(jié)果: 空置null過濾有

29、時候需要測試值或者標識符是否為null。與sql類似使用 is null 或 notis null x也能起作用。查詢:START a=node(1), b=node(3, 2)MATCH a<-r?-bWHERE r is nullRETURN bTobias節(jié)點沒有鏈接上。結(jié)果: 關系過濾為過濾兩點間基于關系的子圖,在match子句中使用限制局部??梢悦枋鰩Х较虻年P系和可能的類型。這些都是有效的表達:WHERE a-b WHERE a-b WHERE a:KNOWS-bWHERE a-:KNOWS-b查詢:START a=node(1), b=node(3, 2)WHERE

30、 a<-bRETURN bTobias節(jié)點沒有鏈接結(jié)果:  neo4j 綜合目錄1. 返回節(jié)點2. 返回關系3. 返回屬性4. 帶特殊字符的標識符5. 列的別名6. 可選屬性7. 特別的結(jié)果 查詢中的返回局部,返回途中定義的感興趣的局部??梢詾楣?jié)點、關系或其上的屬性。圖返回節(jié)點返回一個節(jié)點,在返回語句中列出即可。查詢:START n=node(2)RETURN n 結(jié)果:返回關系查詢:START n=node(1)MATCH (n)-r:KNOWS->(c)RETURN r結(jié)果:返回屬性查詢:START n=node(1)RETURN n.n

31、ame結(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é)果:可選屬性屬性在節(jié)點上可能存在也可能不存在,可以使用問號來標識標識符即可。

32、查詢: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. 分組計算關系類型4. 計算實體數(shù)5. 計算非空可以值數(shù)6. 求和sum7. 平均值avg8. 最大值max9. 最小值min10. 聚類COLLECT11. 相異DI

33、STINCT聚合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(*) 返回開始節(jié)點和相關節(jié)點節(jié)點數(shù)。結(jié)果:分組計算關系類型計算分組了得關系類型,返回

34、關系類型并使用count*計算。查詢:START n=node(2)MATCH (n)-r->()RETURN type(r), count(*) 返回關系類型和其分組數(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?) 結(jié)果:求和sumSum集合簡單計算數(shù)值類型的值。Null值將自動去掉。如下:查詢

35、:START n=node(2,3,4)RETURN sum(perty) 計算所有節(jié)點屬性值之和。結(jié)果:平均值avgAvg計算數(shù)量列的平均值查詢:START n=node(2,3,4)RETURN avg(perty) 結(jié)果:最大值maxMax查找數(shù)字列中的最大值。查詢:START n=node(2,3,4)RETURN max(perty) 結(jié)果:最小值minMin使用數(shù)字屬性作為輸入,并返回在列中最小的值。查詢:START n=node(2,3,4)RETURN min(perty) 結(jié)果:聚類COLLECT

36、Collect將所有值收集到一個集合list中。查詢:START n=node(2,3,4)RETURN collect(perty) 返回一個帶有所有屬性值的簡單列。結(jié)果:相異DISTINCT聚合函數(shù)中使用distinct來去掉值中重復的數(shù)據(jù)。查詢:START a=node(2)MATCH a->bRETURN count(distinct b.eyes) 結(jié)果:neo4j 高級篇目錄1. 排序Order by1. 通過節(jié)點屬性排序節(jié)點2. 通過多節(jié)點屬性排序節(jié)點3. 倒序排列節(jié)點4. 空值排序2. Skip1. 跳過前三個2. 返回中間兩個3. Limi

37、t1. 返回第一局部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é)點或者關系排序,僅僅只針對其屬性有效。圖:通過節(jié)點屬性排序節(jié)點查詢:START n=node(3,1,2)RETURN nORDER BY  結(jié)果:通過多節(jié)點屬性排序節(jié)點在order by子句中

38、可以通過多個屬性來排序每個標識符。Cypher首先將通過第一個標識符排序,如果第一個標識符或?qū)傩韵嗟?,那么在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 DESC 結(jié)果: 空值排序當排列結(jié)果集時,在順序排列中null將永遠放在最后,而在倒序排列中放最前

39、面。查詢: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é)果: 返回中間兩個查詢:START n=node(3, 4, 5, 1, 2)RETURN nORDER BY

40、 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迭代測試集合中所有元素的判斷。語法:All標識符 in iterable where 判斷參數(shù):Ø

41、0; 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語法:ANY(identifierin iterable WHERE predicate)參數(shù):Ø  Iter

42、able迭代器:一個集合屬性,或者可迭代的元素,或一個迭代函數(shù)。Ø  Identifier標識符:可用于判斷比擬的標識符。Ø  Predicate判斷:一個測試所有迭代器中元素的判斷。查詢:START a=node(2)WHERE any(x in a.array WHERE x = "one")RETURN a結(jié)果:None在迭代器中沒有元素判斷將返回true。語法:NONE(identifierin iterable WHERE predicate)Ø  Iterable迭代器:一個集合屬性,或者可迭代的元素,

43、或一個迭代函數(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標識符:可用于判斷比擬的標識符。Ø P

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論