我有一个包含用户之间关系的图表,显示哪些用户访问了另一个人的个人资料以及何时访问:
(visitor:User)-[:VISITED]->(visitee:User)
Run Code Online (Sandbox Code Playgroud)
但我不想存储从一开始以来的每次访问。我只想要用户访问过的最后 X 个用户。因此,在添加新关系之前,我必须删除最旧的关系,但我不知道如何删除它。我只能得到按日期排序的列表:
MATCH (visitor:User)-[r:VISITED]->(User)
WHERE visitor.user_id = %s
RETURN r
ORDER BY r.date
Run Code Online (Sandbox Code Playgroud)
我需要的是删除此列表中的第一个关系。我怎样才能做到这一点?
最简单的方法是在 之前使用 anORDER BY和 a 。IE:LIMITDELETE
MATCH (visitor:User)-[r:VISITED]->(User)
WHERE visitor.user_id = %s
WITH r ORDER BY r.date LIMIT 1
DELETE r
Run Code Online (Sandbox Code Playgroud)
更有效的机制可能是保留访问的链接列表(这里有一些讨论:http ://docs.neo4j.org/chunked/stable/cypherdoc-linked-lists.html )
| 归档时间: |
|
| 查看次数: |
1375 次 |
| 最近记录: |