簡體   English   中英

從 Neo4j 密碼查詢返回邊緣列表

[英]Returning edge list from Neo4j cypher query

嗨,我最近開始使用 Neo,想知道如何查詢圖表以返回顯示連接的兩列 ID。

MATCH path=(s1:Student{StudentId: 7079945})-[r:FRIENDS*6..9]->(s2:Student)
WHERE  s1.StartDate> '2015-01-01' 
RETURN s1.StudentID, s2.StudentId

以上為我提供了 s1 的所有連接,但是它沒有顯示任何其他連接。 如何將圖中的所有連接收集到一個邊列表中? 計划是在 RNeo4j 中使用此查詢並使用 igraph 進行分析。

提前致謝

如果您實際上只是對每條路徑中的節點對感興趣,那么您可以執行以下操作。

此查詢采用匹配的路徑,將每個路徑中的節點對分組,然后僅返回不同的對。

MATCH path=(s1:Student{StudentId: 7079945})-[r:FRIENDS*6..9]->(s2:Student)
WHERE  s1.StartDate> '2015-01-01'
WITH REDUCE(pairs =[],r in relationships(path) | pairs + [[startNode(r).StudentId,endNode(r).StudentId]]) as pairs
UNWIND pairs as pair
WITH DISTINCT pair
RETURN pair[0] as from, pair[1] as to

最簡單的方法是返回路徑

MATCH path=(s1:Student{StudentId: 7079945})-[r:FRIENDS*6..9]->(s2:Student)
WHERE  s1.StartDate> '2015-01-01' 
RETURN path

由於您可能對返回 :FRIENDS 關系不感興趣,因為它們都是相同的,因此您只能返回路徑的節點

MATCH path=(s1:Student{StudentId: 7079945})-[r:FRIENDS*6..9]->(s2:Student)
WHERE  s1.StartDate> '2015-01-01' 
RETURN nodes(path)

您可以在文檔中找到路徑的更多功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM