我正在使用Neo4j CE 3.1.1,并且我与作者和书籍之间存在关系WRITES。我想找到作者数量最多的N(例如N = 10)书籍。下面的一些例子,我发现,我想出了查询:Neo4j:查询找到具有最多关系的节点及其连接的节点
MATCH (a)-[r:WRITES]->(b)
RETURN r,
COUNT(r) ORDER BY COUNT(r) DESC LIMIT 10
当我在Neo4j的浏览器中执行此查询,我得到了10本书,但这些并不像大多数作者所写的那些,因为它们显示只有几个WRITES与作者的关系。如果我更改查询到
MATCH (a)-[r:WRITES]->(b)
RETURN b,
COUNT(r) ORDER BY COUNT(r) DESC LIMIT 10
然后我得到了10本书最作家,但我没有看到他们的作者的关系。要做到这一点,我必须写额外的查询中显式声明书我在前面的查询中找到的名称:
MATCH()-[r:WRITES]->(b)
WHERE b.title="Title of a book with many authors"
RETURN r
我在做什么错?为什么不是第一个查询按预期工作?
非常感谢! – st1led
当然可以!虽然你可能想要首先分析查询,但我给出的第一个可能不会像表格一样,因为它会在大图上进行大量的收集。 – InverseFalcon