使用 Cypher 查找每个项目的最新邮件

Finding the most recent mails for each project using Cypher

我的图形数据库通过简单的 BELONGS 关系将 Project 个节点连接到 Mail 个节点。 Mail 节点有一个 long 属性 称为 sentDate

我正在尝试为每个项目查找 n 最近的邮件。

我当前的查询只查找 n 所有时间的最新邮件,与项目无关:

MATCH (project:PROJECT)-->(mail:MAIL) RETURN project.projectId AS projectId, mail ORDER BY mail.sentDate DESC LIMIT somelimit

我想要 return 类似于每行的行:projectId 和最新邮件列表。

你可以试试这个:

MATCH (project:Project)-->(mail:Mail)
WITH project, mail
ORDER BY mail.sentDate DESC
RETURN project.projectId, collect(mail) as mails
LIMIT 10

我假设你想限制项目。如果你还想限制每个项目的邮件,你会写 collect(mails)[..10]