从 Neo4j 中的所有节点获取关系

Getting relationships from all node's in Neo4j

我正在尝试使用 Neo4j 进行查询。 我想在 Neo4j 中自动完成时打印获取信息的结果。 例如,假设查询创建 3 个节点,如下所示。

create (david:Person {name: 'david'}), (mike:Person {name: 'mike'}), (book:Book {title:'book'}), (david)-[:KNOWS]->(mike), (david)-[:WRITE]->(book), (mike)-[:WRITE]->(book)

这里有 2 张图片:

查询后如图,我想根据起始节点('book'节点)获取所有相关节点的关系。 我使用了如下所示的查询。

match (book:Book)-[r]-(person) return book, r, person

无论AUTO-COMPLETE是ON还是OFF,我希望获取所有节点的关系,包括“David knows Mike”,但系统说不是。

我在neo4j网站学习了很多Syntax结构,不知何故对我来说很难。所以,我上传这个post来为你寻求帮助。

您必须 return 您自己明确需要的所有数据。例如,Neo4j 自动 return 具有数千个关系的超级节点的所有关系是不好的,因为这意味着很多 I/O,可能一无所获。

MATCH (book:Book)-[r]-(person)-[r2]-()
RETURN book, r, person, collect(r2) AS r2

感谢 InverseFalcon,这是我有效的查询。

MATCH p = (book:Book)-[r]-(person:Person) 
UNWIND nodes(p) as allnodes WITH COLLECT(ID(allnodes)) AS ALLID 
MATCH (a)-[r2]-(b) 
WHERE ID(a) IN ALLID AND ID(b) IN ALLID 
WITH DISTINCT r2 
RETURN startNode(r2), r2, endNode(r2)