2015-10-20 87 views
1

我有一个节点数据库像如何打印节点的Neo4j,直到某个特定节点

(A:User)-[:HAS_NOTIFICATION]->(B:Notification)-[:NEXT]-> 
(C:Notification)-[:NEXT]->[D:Notification]-[:NEXT]-> 
(E:Notification) and so on 

现在我想打印通知特定用户到最后通知已经发送给用户。如果我现在已经发送通知直到“D”,我必须发送未发送的通知“B,C”。所以我必须编写一个查询返回通知节点,直到达到特定节点。

回答

0

如果您知道发送的最后通知,你可以做这样的事情:

MATCH 
(:Person {id:"User_ID"})-[:HAS_NOTIFICATION]->(n1:Notification), 
(n2:Nofitication { id:"LAST_NOTIFICATION_SENT"}), 
    p=shortestPath((n1)-[*]->(n2)) 
RETURN 
    nodes(p) 

干杯

+0

您的解决方案解决了我的问题,非常感谢.. – user3542450

+0

有两个小问题,这个解决方案,就像用户只有一个通知那么它不会返回任何通知。另一个问题是,如果我尝试获取通知的新列表,那么新列表还包括上次发送的通知。 – user3542450

相关问题