foreach - Neo4j CQL:对于每个节点,返回最旧的相关节点 X
问题描述
我有类似的东西(p:Post)-[:USED]->[e:Email] RETURN e.address, p.createdAt
会返回:
我试图只p.createdAt
为每个唯一的电子邮件地址获取最旧的。对于上面的示例,它将是:
此外,我想知道该帖子的发布时间(以月数计)。
我目前有这个查询,但它只是返回所有帖子和所有帖子年龄:
MATCH (p:Post)-[:USED_EMAIL]->(e:Email)
WITH p, e.address AS email
ORDER BY p.createdAt ASC
WITH email, COLLECT(p.createdAt) AS collection
WITH email, collection[0] AS oldestPost, duration.inMonths(datetime(collection[0]), datetime()) AS durationMonths
WITH email, oldestPost, durationMonths.months AS numMonthsAgo
RETURN email, oldestPost, numMonthsAgo
请帮忙。我正在完全转过身来试图弄清楚这一点!
谢谢!
解决方案
尝试以下查询:
MATCH (p:Post)-[:USED_EMAIL]->(e:Email)
WITH p, e.address as email
ORDER BY p.createdAt ASC
WITH email, collect(p.createdAt)[0] as first_post
RETURN email, first_post, duration.inMonths(datetime(collection[0]), datetime()).months AS durationMonths
推荐阅读
- javascript - 使用/不使用 const 声明变量时,排序脚本的行为会有所不同。为什么?
- android - 如果我使用 Xamarin.Essentials 首选项存储数据,那么如何在 Android Splash 活动中检索该数据?
- rust - 返回对临时值的引用如何工作?
- c++ - c++ nullptr 实现是如何工作的?
- r - 奇怪的“可变”导致R中的循环
- sql - 多个条件的 SQL 查询语句
- python - 在 Python 中将 ASCII 字符串转换为十六进制字符串
- javascript - Nuxtjs/Firebase 权限被拒绝
- c++ - 读取 BMP 32 位
- javascript - Vue3 设置函数导致错误 - 无法读取 null 的电子邮件属性