Return 节点 ID 以及完整节点
Return node ID along with complete node
我是 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)}
有人可以帮我解决这个问题吗?
编辑:实际查询更复杂,有两个以上不同的节点标签
我认为当前的 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;
我是 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)}
有人可以帮我解决这个问题吗?
编辑:实际查询更复杂,有两个以上不同的节点标签
我认为当前的 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;