返回节点ID以及完整节点

时间:2015-11-24 05:54:31

标签: java neo4j spring-data-neo4j

我是Neo4j的新手,正在研究Spring数据Neo4J存储库。我想获取具有所有属性值和节点ID的所有节点。像

这样的东西
{name: 'sid',age: 20, id: 123}

一种选择是进行以下查询

match (e: Employee) return {name: e.name, age: e.age, id: ID(e)}

但问题是我必须在JSON定义中显式添加所有属性。否则可以执行以下操作,但这会给我嵌套对象而不是平面对象

match (e: Employee) return {obj: e, id: ID(e)}

有人可以帮我这个吗?

编辑:实际查询更复杂,有两个以上不同的节点标签

1 个答案:

答案 0 :(得分:0)

我认为使用当前的Cypher语法无法创建具有e的所有属性以及额外id属性的平面地图。

但有一种解决方法,您可能认为可以接受(或过度杀伤)。这就是在创建时将id属性添加到每个Employee节点。这必须在SET子句中完成,因为新节点的ID在CREATE子句中不可用。例如:

CREATE (e:Employee {name: "Fred", age: 42})
SET e.id = ID(e)

这样,您的MATCH查询可以非常简单:

MATCH (e: Employee)
RETURN e;