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

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

生活随笔

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

编程问答

Neo4j:Cypher –删除重复的节点

發(fā)布時(shí)間:2023/12/3 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Neo4j:Cypher –删除重复的节点 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我最近在處理的圖上遇到問(wèn)題,因?yàn)槲覜](méi)有應(yīng)用任何唯一的約束 ,我設(shè)法創(chuàng)建了重復(fù)的節(jié)點(diǎn)。

我想刪除重復(fù)項(xiàng),并遇到了吉米·魯茨(Jimmy Ruts)的精彩文章 ,其中顯示了一些方法。

讓我們首先創(chuàng)建一個(gè)包含一些重復(fù)節(jié)點(diǎn)的圖形:

UNWIND range(0, 100) AS id CREATE (p1:Person {id: toInteger(rand() * id)}) MERGE (p2:Person {id: toInteger(rand() * id)}) MERGE (p3:Person {id: toInteger(rand() * id)}) MERGE (p4:Person {id: toInteger(rand() * id)}) CREATE (p1)-[:KNOWS]->(p2) CREATE (p1)-[:KNOWS]->(p3) CREATE (p1)-[:KNOWS]->(p4)Added 173 labels, created 173 nodes, set 173 properties, created 5829 relationships, completed after 408 ms.

我們?nèi)绾握业街貜?fù)的節(jié)點(diǎn)?

MATCH (p:Person) WITH p.id as id, collect(p) AS nodes WHERE size(nodes) > 1 RETURN [ n in nodes | n.id] AS ids, size(nodes) ORDER BY size(nodes) DESC LIMIT 10╒══════════════════════╤═════════════╕ │"ids" │"size(nodes)"│ ╞══════════════════════╪═════════════╡ │[1,1,1,1,1,1,1,1] │8 │ ├──────────────────────┼─────────────┤ │[0,0,0,0,0,0,0,0] │8 │ ├──────────────────────┼─────────────┤ │[17,17,17,17,17,17,17]│7 │ ├──────────────────────┼─────────────┤ │[4,4,4,4,4,4,4] │7 │ ├──────────────────────┼─────────────┤ │[2,2,2,2,2,2] │6 │ ├──────────────────────┼─────────────┤ │[5,5,5,5,5,5] │6 │ ├──────────────────────┼─────────────┤ │[19,19,19,19,19,19] │6 │ ├──────────────────────┼─────────────┤ │[11,11,11,11,11] │5 │ ├──────────────────────┼─────────────┤ │[25,25,25,25,25] │5 │ ├──────────────────────┼─────────────┤ │[43,43,43,43,43] │5 │ └──────────────────────┴─────────────┘

讓我們放大所有具有“ id:1”的人,并計(jì)算出他們有多少關(guān)系。 我們的計(jì)劃是保持連接最多的節(jié)點(diǎn),并擺脫其他節(jié)點(diǎn)。

MATCH (p:Person) WITH p.id as id, collect(p) AS nodes WHERE size(nodes) > 1 WITH nodes ORDER BY size(nodes) DESC LIMIT 1 UNWIND nodes AS n RETURN n.id, id(n) AS internalId, size((n)--()) AS rels ORDER BY rels DESC╒══════╤════════════╤══════╕ │"n.id"│"internalId"│"rels"│ ╞══════╪════════════╪══════╡ │1 │175 │1284 │ ├──────┼────────────┼──────┤ │1 │184 │721 │ ├──────┼────────────┼──────┤ │1 │180 │580 │ ├──────┼────────────┼──────┤ │1 │2 │391 │ ├──────┼────────────┼──────┤ │1 │195 │361 │ ├──────┼────────────┼──────┤ │1 │199 │352 │ ├──────┼────────────┼──────┤ │1 │302 │5 │ ├──────┼────────────┼──────┤ │1 │306 │1 │ └──────┴────────────┴──────┘

因此,在此示例中,我們要保留具有210個(gè)關(guān)系的節(jié)點(diǎn)并刪除其余的關(guān)系。

為了使事情變得容易,我們需要基數(shù)最大的節(jié)點(diǎn)在列表中排在第一或最后。 我們可以通過(guò)在對(duì)節(jié)點(diǎn)進(jìn)行分組之前對(duì)節(jié)點(diǎn)進(jìn)行排序來(lái)確保確實(shí)如此。

MATCH (p:Person) WITH p ORDER BY p.id, size((p)--()) DESC WITH p.id as id, collect(p) AS nodes WHERE size(nodes) > 1 RETURN [ n in nodes | {id: n.id,rels: size((n)--()) } ] AS ids, size(nodes) ORDER BY size(nodes) DESC LIMIT 10╒══════════════════════════════════════════════════════════════════════╤═════════════╕ │"ids" │"size(nodes)"│ ╞══════════════════════════════════════════════════════════════════════╪═════════════╡ │[{"id":1,"rels":1284},{"id":1,"rels":721},{"id":1,"rels":580},{"id":1,│8 │ │"rels":391},{"id":1,"rels":361},{"id":1,"rels":352},{"id":1,"rels":5},│ │ │{"id":1,"rels":1}] │ │ ├──────────────────────────────────────────────────────────────────────┼─────────────┤ │[{"id":0,"rels":2064},{"id":0,"rels":2059},{"id":0,"rels":1297},{"id":│8 │ │0,"rels":1124},{"id":0,"rels":995},{"id":0,"rels":928},{"id":0,"rels":│ │ │730},{"id":0,"rels":702}] │ │ ├──────────────────────────────────────────────────────────────────────┼─────────────┤ │[{"id":17,"rels":153},{"id":17,"rels":105},{"id":17,"rels":81},{"id":1│7 │ │7,"rels":31},{"id":17,"rels":15},{"id":17,"rels":14},{"id":17,"rels":1│ │ │}] │ │ ├──────────────────────────────────────────────────────────────────────┼─────────────┤ │[{"id":4,"rels":394},{"id":4,"rels":320},{"id":4,"rels":250},{"id":4,"│7 │ │rels":201},{"id":4,"rels":162},{"id":4,"rels":162},{"id":4,"rels":14}]│ │ ├──────────────────────────────────────────────────────────────────────┼─────────────┤ │[{"id":2,"rels":514},{"id":2,"rels":329},{"id":2,"rels":318},{"id":2,"│6 │ │rels":241},{"id":2,"rels":240},{"id":2,"rels":2}] │ │ ├──────────────────────────────────────────────────────────────────────┼─────────────┤ │[{"id":5,"rels":487},{"id":5,"rels":378},{"id":5,"rels":242},{"id":5,"│6 │ │rels":181},{"id":5,"rels":158},{"id":5,"rels":8}] │ │ ├──────────────────────────────────────────────────────────────────────┼─────────────┤ │[{"id":19,"rels":153},{"id":19,"rels":120},{"id":19,"rels":84},{"id":1│6 │ │9,"rels":53},{"id":19,"rels":45},{"id":19,"rels":1}] │ │ ├──────────────────────────────────────────────────────────────────────┼─────────────┤ │[{"id":11,"rels":222},{"id":11,"rels":192},{"id":11,"rels":172},{"id":│5 │ │11,"rels":152},{"id":11,"rels":89}] │ │ ├──────────────────────────────────────────────────────────────────────┼─────────────┤ │[{"id":25,"rels":133},{"id":25,"rels":107},{"id":25,"rels":98},{"id":2│5 │ │5,"rels":15},{"id":25,"rels":2}] │ │ ├──────────────────────────────────────────────────────────────────────┼─────────────┤ │[{"id":43,"rels":92},{"id":43,"rels":85},{"id":43,"rels":9},{"id":43,"│5 │ │rels":5},{"id":43,"rels":1}] │ │ └──────────────────────────────────────────────────────────────────────┴─────────────┘

現(xiàn)在是時(shí)候刪除重復(fù)項(xiàng)了:

MATCH (p:Person) WITH p ORDER BY p.id, size((p)--()) DESC WITH p.id as id, collect(p) AS nodes WHERE size(nodes) > 1 UNWIND nodes[1..] AS n DETACH DELETE nDeleted 143 nodes, deleted 13806 relationships, completed after 29 ms.

現(xiàn)在,如果我們運(yùn)行重復(fù)的查詢(xún):

MATCH (p:Person) WITH p.id as id, collect(p) AS nodes WHERE size(nodes) > 1 RETURN [ n in nodes | n.id] AS ids, size(nodes) ORDER BY size(nodes) DESC LIMIT 10(no changes, no records)

如果我們刪除WHERE子句怎么辦?

MATCH (p:Person) WITH p.id as id, collect(p) AS nodes RETURN [ n in nodes | n.id] AS ids, size(nodes) ORDER BY size(nodes) DESC LIMIT 10╒═════╤═════════════╕ │"ids"│"size(nodes)"│ ╞═════╪═════════════╡ │[23] │1 │ ├─────┼─────────────┤ │[86] │1 │ ├─────┼─────────────┤ │[77] │1 │ ├─────┼─────────────┤ │[59] │1 │ ├─────┼─────────────┤ │[50] │1 │ ├─────┼─────────────┤ │[32] │1 │ ├─────┼─────────────┤ │[41] │1 │ ├─────┼─────────────┤ │[53] │1 │ ├─────┼─────────────┤ │[44] │1 │ ├─────┼─────────────┤ │[8] │1 │ └─────┴─────────────┘

賀拉,不再重復(fù)! 最后,讓我們檢查一下是否保留了我們希望保留的節(jié)點(diǎn)。 我們期望它的“ internalId”為175:

MATCH (p:Person {id: 1}) RETURN size((p)--()), id(p) AS internalId╒═══════════════╤════════════╕ │"size((p)--())"│"internalId"│ ╞═══════════════╪════════════╡ │242 │175 │ └───────────────┴────────────┘

哪有! 關(guān)系比以前少了很多,因?yàn)檫@些關(guān)系中有很多是要復(fù)制我們現(xiàn)在已刪除的節(jié)點(diǎn)。

如果我們想更進(jìn)一步,可以將重復(fù)節(jié)點(diǎn)的關(guān)系“合并”到我們保留的節(jié)點(diǎn)上,但這是另一篇文章!

翻譯自: https://www.javacodegeeks.com/2017/10/neo4j-cypher-deleting-duplicate-nodes.html

總結(jié)

以上是生活随笔為你收集整理的Neo4j:Cypher –删除重复的节点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 亚洲91色| 国产精品夜色一区二区三区 | 亚洲成人黄色小说 | 天天操网站 | 蜜桃色av| 免费高清视频在线观看 | 吊侵犯の奶水授乳羞羞漫画 | 伊人av综合网 | 午夜av片| 午夜免费网址 | 最新av免费在线观看 | 欧美成人看片黄a免费看 | 国产精品揄拍100视频 | 国产成人精品一区二区在线小狼 | 成人91免费 | 日本视频免费在线 | 黄网站免费视频 | 亚洲妇女av | 一区二区三区在线观看av | 国产精品s色 | 久久久在线观看 | 日本免费在线视频观看 | 欧美性久久久 | 久久精品日韩无码 | 亚洲AV无码成人精品区明星换面 | 国产碰碰| 国产嫩草av| xx性欧美肥妇精品久久久久久 | 1024av在线| 91在线播放视频 | 91资源站 | 麻豆高清免费国产一区 | 日本xxxxxxxxx| 在线国产中文字幕 | 日韩a视频| 日韩在线视频你懂的 | 午夜视频导航 | 午夜精品福利一区二区蜜股av | 国产黄色片在线 | www.黄色免费 | 精品人妻无码一区二区三区换脸 | 国产91精品一区 | 爱爱免费视频网站 | 三级大片在线观看 | yy色综合| 激情小视频在线观看 | 中文在线а√在线 | 日本激情视频网站 | 欧美色图俺去了 | 又色又爽又黄 | 看全色黄大色黄大片大学生 | 久久爱99| 午夜电影一区二区三区 | 91禁在线看 | 日本欧美黄色 | 日韩av自拍| 3d动漫精品h区xxxxx区 | 国产字幕侵犯亲女 | 在线观看免费高清 | 亚洲精品va | 涩涩涩综合 | 婷婷另类小说 | 日韩免费视频一区 | 已满十八岁免费观看全集动漫 | 日韩精品久久久 | 麻豆婷婷 | 欧美风情第一页 | 日日操夜夜操狠狠操 | 啊灬啊灬啊灬秀婷 | 探花系列在线观看 | av不卡在线看 | 求欧美精品网址 | 久久久线视频 10 | 久久七 | 欧美乱淫 | 国产日韩成人 | 韩国性猛交╳xxx乱大交 | jiizzyou性欧美老片 | 国产一区二区不卡 | 午夜不卡在线观看 | 欧美一二三区在线观看 | 亚洲男女激情 | 国产3p露脸普通话对白 | 狠狠操天天干 | 国产成人精品综合在线观看 | 在线 日本 制服 中文 欧美 | 干夜夜 | 可以免费观看的av网站 | 国产精品乱码一区 | 一本色道久久88亚洲精品综合 | 国产又黄又爽视频 | 无遮挡毛片 | 高清日韩一区 | 久久久久久亚洲av毛片大全 | a天堂中文字幕 | 欧美极品喷水 | 日本人妻一区二区三区 | 国产女人18水真多毛片18精品 | 人人看超碰 |