聚合 - 列表

问题描述 投票:0回答:1

我有两个节点:期刊,文章

具有以下结构: (Journal{name}) , (Article{date, title})

期刊可以通过以下关系链接到一篇或多篇文章:

(:期刊)-[:HAS_ARTICLE]->(:文章)

我无法编写一个查询来给我:

  1. 不同期刊的名称
  2. 母期刊最新文章标题

结果应该是这样的:

[ {期刊:期刊.名称,最新新闻:文章.标题}, ... ]

您能帮我解决这个问题,并给我一个链接来详细说明我对此缺乏了解吗?
谢谢你

neo4j cypher
1个回答
0
投票

如果你想检索每个期刊的最新文章,你可以使用collect { sub query } + 用[0]获取列表中的第一个元素,如下所示:

match (j:Journal)-[:HAS_ARTICLE]->(a:Article)
with j, collect { 
        // Sub query
        match  (j)-[:HAS_ARTICLE]->(a:Article) 
        return a 
        order by a.date desc limit 1 // Sort and return only latest article
    }[0] as latest_article
limit 10  // Limit number of journals retrived 
return collect({journal: j.name, latest_news: latest_article.title}) // Return list of dictionaries
© www.soinside.com 2019 - 2024. All rights reserved.