如何在Neo4j的查询结果中返回节点类或类型

如何在Neo4j的查询结果中返回节点类或类型,neo4j,Neo4j,我有一个节点类型Author,它通过关系类型writed链接到节点类型Book和Magazine。我需要在一个查询中找到某个作者写的所有书籍和杂志,在查询结果中,我希望能够区分书籍和杂志的结果 实现这一点的一种方法是为书籍和杂志定义单独的关系,并在结果中返回类型(关系)值,以匹配书籍和杂志的结果 MATCH (a:Author)-[r]->(i) WHERE TYPE(r) = 'WROTE_BOOK' OR TYPE(r) = 'WROTE_MAGAZINE' RETURN TYPE(

我有一个节点类型
Author
,它通过关系类型
writed
链接到节点类型
Book
Magazine
。我需要在一个查询中找到某个作者写的所有书籍和杂志,在查询结果中,我希望能够区分书籍和杂志的结果

实现这一点的一种方法是为书籍和杂志定义单独的关系,并在结果中返回
类型(关系)
值,以匹配书籍和杂志的结果

MATCH (a:Author)-[r]->(i) WHERE TYPE(r) = 'WROTE_BOOK' OR TYPE(r) = 'WROTE_MAGAZINE' 
RETURN TYPE(r), i
但是,我希望能够做到这一点,而不必为我的客户建立单独的关系。有没有办法在查询结果中查询节点类型或类?在上面的示例中,如下所示:

MATCH (a:Author)-[:WROTE]->(i) WHERE TYPE(i) = 'Book' OR TYPE(i) = 'MAGAZINE' 
RETURN TYPE(i), i

似乎
TYPE()
函数仅适用于关系,而不适用于节点。提前谢谢你的帮助

类型用于关系,标签用于节点

MATCH (a:Author)-[:WROTE]->(i) WHERE labels(i) in ['Book','MAGAZINE'] 
RETURN labels(i), i
如果作者只写杂志和书籍,则不需要
WHERE
过滤器

MATCH (a:Author)-[:WROTE]->(i) 
RETURN labels(i), i

类型用于关系,标签用于节点

MATCH (a:Author)-[:WROTE]->(i) WHERE labels(i) in ['Book','MAGAZINE'] 
RETURN labels(i), i
如果作者只写杂志和书籍,则不需要
WHERE
过滤器

MATCH (a:Author)-[:WROTE]->(i) 
RETURN labels(i), i

谢谢@Tomaz!很好用!谢谢@Tomaz!很好用!