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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

CQL 函数及多深度关系节点

發(fā)布時(shí)間:2023/12/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CQL 函数及多深度关系节点 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. CQL 函數(shù)

數(shù)據(jù)準(zhǔn)備

// 刪除所有的節(jié)點(diǎn)和關(guān)系 MATCH(n) OPTIONAL MATCH (n)-[r]-() DELETE n,r// 創(chuàng)建Person 的節(jié)點(diǎn) CREATE (person:Person {cid:1,name:"范閑",age:24,gender:0,character:"A",money:1000,description:"范閑,是貓膩小說(shuō)《慶余年》主人公,穿越人士,慶國(guó)數(shù)十年風(fēng)雨畫(huà)卷的見(jiàn)證者。其容貌俊美無(wú)雙,尤勝于女子,生性淡薄剛毅,善良而腹黑,城府極深,重視恩情。最終隱居江南"}); CREATE (person:Person {cid:2,name:"林婉兒",age:20,gender:1,character:"B",money:800,description:"林婉兒是慶國(guó)宰相和長(zhǎng)公主的私生女,電視劇《慶余年》里的女主人公,由李沁飾演"}); CREATE (person:Person {cid:3,name:"慶帝",age:49,gender:0,character:"A",money:8900,description:"慶帝,網(wǎng)文作家貓膩所著的權(quán)謀小說(shuō)《慶余年》的角色之一,南慶國(guó)的皇帝,心中裝有天下統(tǒng)一"}); CREATE (person:Person {cid:4,name:"長(zhǎng)公主",age:46,gender:1,character:"B",money:3700,description:"《慶余年》中,長(zhǎng)公主這個(gè)人不僅人設(shè)很復(fù)雜,就連她的感情生活還是挺復(fù)雜。長(zhǎng)公主所處的身份就是慶國(guó)的公主,皇帝的妹妹,太子的姑姑,國(guó)家重要財(cái)權(quán)的掌管,林婉兒的母親"}); CREATE (person:Person {cid:5,name:"宰相林若甫",age:47,gender:0,character:"A",money:1600,description:"林若甫,是電視劇《慶余年》登場(chǎng)的虛擬人物之一,南慶當(dāng)朝宰相,林婉兒的親生父親。"}); CREATE (person:Person {cid:6,name:"葉靈兒",age:20,gender:1,character:"C",money:700,description:"葉靈兒,網(wǎng)文作家貓膩所著的權(quán)謀小說(shuō)《慶余年》的角色之一,林婉兒的好友,最后嫁給了二皇子"}); CREATE (person:Person {cid:7,name:"九品射手燕小乙",age:47,gender:0,character:"C",money:900,description:"一品最低,九品最高。慶帝身邊的燕小乙便是九品,而且是慶國(guó)獨(dú)一無(wú)二的神射手,臂力、眼力、聽(tīng)力驚人"}); CREATE (person:Person {cid:8,name:"二皇子",age:26,gender:0,character:"B",money:1700,description:"《慶余年》中,二皇子結(jié)局自殺身亡。二皇子對(duì)慶帝也是意見(jiàn)很大,但以他的實(shí)力還掀不起什么水花,所以只能慢慢等待時(shí)機(jī)"}); CREATE (person:Person {cid:9,name:"靖王世子",age:25,gender:0,character:"A",money:1600,description:"在《慶余年》中,此靖王非彼靖王,但是同音之美也會(huì)讓人會(huì)對(duì)靖王世子李弘成這個(gè)角色產(chǎn)生好感,而靖王世子李弘成的出場(chǎng)的確是幫助了范閑逃脫太子勢(shì)力的糾纏"}); CREATE (person:Person {cid:10,name:"王啟年",age:46,gender:0,character:"C",money:1700,description:"王啟年,網(wǎng)文作家貓膩所著的權(quán)謀小說(shuō)《慶余年》的角色之一,慶國(guó)監(jiān)察院一處的文書(shū),擅長(zhǎng)追蹤之術(shù)。"}); CREATE (person:Person {cid:11,name:"北齊圣女海棠朵朵",age:21,gender:1,character:"A",money:2600,description:"海棠朵朵是北齊國(guó)的才女,被人尊稱(chēng)為圣女,而且是北齊大宗師苦荷的關(guān)門(mén)弟子,在北齊國(guó)也算是舉足輕重的人物"}); CREATE (person:Person {cid:12,name:"北齊小皇帝戰(zhàn)豆豆",age:20,gender:0,character:"A",money:4600,description:"很多人想知道劇中的北齊小皇帝是誰(shuí)呢?讓小編告訴你們吧。 戰(zhàn)豆豆是北齊第二任皇帝,乃前北魏一代大將戰(zhàn)清風(fēng)之孫,大宗師苦荷的叔侄女兼徒孫"});//創(chuàng)建關(guān)系 match(person:Person {name:"范閑"}),(person2:Person {name:"林婉兒"}) create(person)-[r:Couple]->(person2); match(person:Person {name:"范閑"}),(person2:Person {name:"王啟年"}) create(person)-[r:Friends]->(person2); match(person:Person {name:"范閑"}),(person2:Person {name:"北齊圣女海棠朵朵"}) create(person)-[r:Friends]->(person2); match(person:Person {name:"范閑"}),(person2:Person {name:"慶帝"}) create(person)-[r:Father]->(person2); match(person:Person {name:"范閑"}),(person2:Person {name:"長(zhǎng)公主"}) create(person)-[r:Wife_Mother]->(person2); match(person:Person {name:"慶帝"}),(person2:Person {name:"二皇子"}) create(person)-[r:Son]->(person2); match(person:Person {name:"慶帝"}),(person2:Person {name:"長(zhǎng)公主"}) create(person)-[r:BrotherSister]->(person2); match(person:Person {name:"二皇子"}),(person2:Person {name:"靖王世子"}) create(person)-[r:Friends]->(person2); match(person:Person {name:"北齊圣女海棠朵朵"}),(person2:Person {name:"北齊小皇帝戰(zhàn)豆豆"}) create(person)-[r:Friends]->(person2); match(person:Person {name:"林婉兒"}),(person2:Person {name:"葉靈兒"}) create(person)-[r:Friends]->(person2); match(person:Person {name:"林婉兒"}),(person2:Person {name:"宰相林若甫"}) create(person)-[r:Father]->(person2); match(person:Person {name:"林婉兒"}),(person2:Person {name:"長(zhǎng)公主"}) create(person)-[r:Mother]->(person2); match(person:Person {name:"長(zhǎng)公主"}),(person2:Person {name:"九品射手燕小乙"}) create(person)-[r:Friends]->(person2);

1.1 字符串函數(shù)

序號(hào)功能描述
1TOUPPER它用于將所有字母更改為大寫(xiě)字母。
2TOLOWER它用于將所有字母改為小寫(xiě)字母。
3SUBSTRING它用于獲取給定String的子字符串。左閉右開(kāi)
4REPLACE它用于替換一個(gè)字符串的子字符串。
match (p:person) return p.cid,p.character,tolower(p.character),p.name,substring(p.name,0,1),replace(p.name,"子","zi")

1.2 聚合函數(shù)

序號(hào)聚集功能描述
1COUNT它返回由MATCH命令返回的行數(shù)。
2MAX它從MATCH命令返回的一組行返回最大值。
3MIN它返回由MATCH命令返回的一組行的最小值。
4SUM它返回由MATCH命令返回的所有行的求和值。
5AVG它返回由MATCH命令返回的所有行的平均值。
match(p:person) return count(p),avg(p.money),sum(p.money),max(p.money),min(p.money)

1.3 關(guān)系函數(shù)

序號(hào)功能描述
1STARTNODE它用于知道關(guān)系的開(kāi)始節(jié)點(diǎn)。
2ENDNODE它用于知道關(guān)系的結(jié)束節(jié)點(diǎn)。
3ID它用于知道關(guān)系的ID。
4TYPE它用于知道字符串表示中的一個(gè)關(guān)系的TYPE。

聚合函數(shù)遇到空值不做處理

match(p:person{name:"林婉兒"}) - [r:Couple] - (p:person) return startnode(r),ID(r),TYPE(r)

1.4 shortestPath 函數(shù)返回最短的 path

MATCH p=shortestPath( (node1)-[*]-(node2) ) RETURN length(p), nodes(p) match p = shortestpath((p1:Person{name:"王啟年"}) - [*] - (p2:Person{name:"九品射手燕小乙"})) return length(p),nodes(p)match p = shortestpath((p1:Person{name:"王啟年"}) - [*1..3] - (p2:Person{name:"九品射手燕小乙"})) return length(p),nodes(p)

2. CQL 多深度關(guān)系節(jié)點(diǎn)

2.1 使用with關(guān)鍵字

查詢(xún)?nèi)龑蛹?jí)關(guān)系節(jié)點(diǎn)如下:with 可以將前面查詢(xún)結(jié)果作為后面查詢(xún)條件

match(na:Person) - [ra] -> (nb:Person) where na.name = "范閑" with na,nb,ra match(nb:Person) - [rb] -> (nc:Person) return na,nb,nc,ra,rbmatch(na:Person) - [ra] -> (nb:Person) where na.name = "林婉兒" with na,nb,ra match(nb:Person) - [rb] -> (nc:Person) return na,nb,nc,ra,rbmatch(na:Person) - [ra] - (nb:Person) where na.name = "林婉兒" with na,nb,ra match(nb:Person) - [rb] -> (nc:Person) return na,nb,nc,ra,rbmatch(na:Person) - [ra] - (nb:Person) where na.name = "林婉兒" with na,nb,ra match(nb:Person) - [rb:Friends] -> (nc:Person) return na,nb,nc,ra,rb

2.2 直接拼接關(guān)系節(jié)點(diǎn)查詢(xún)

match(na:Person{name:"范閑"}) - [ra] -> (nb:Person) - [rb] -> (nc:Person) return na,nb,nc,ra,rb

為了方便,可以將查詢(xún)結(jié)果賦給變量,然后返回

match data = (na:Person{name:"范閑"}) - [ra] -> (nb:Person) - [rb] -> (nc:Person) return data

2.3 使用深度運(yùn)算符

當(dāng)實(shí)現(xiàn)多深度關(guān)系節(jié)點(diǎn)查詢(xún)時(shí),顯然使用以上方式比較繁瑣。
可變數(shù)量的關(guān)系 -> 節(jié)點(diǎn)可以使用 -[:TYPE*minHops..maxHops]-。
查詢(xún):

match data = (na:Person{name:"范閑"}) - [*1..2] -> (nb:Person) return datamatch data = (na:Person{name:"范閑"}) - [:Friends*1..2] -> (nb:Person) return data

Neo4j入門(mén)和基本操作教程地址:https://mall.csdn.net/item/85530

總結(jié)

以上是生活随笔為你收集整理的CQL 函数及多深度关系节点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。