我是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)}
有人可以帮我这个吗?
编辑:实际查询更复杂,有两个以上不同的节点标签
答案 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;