如何在 neo4j 中打印节点直到特定节点

How to print nodes in neo4j till a particular node

我有一个包含节点的数据库

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

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

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

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

干杯