如何将值计算为neo4j返回的行中的变量?

时间:2017-02-05 13:51:44

标签: json neo4j formatting cypher

我想获得以这种方式解析的结果:

{ 'nodes' : [ key : { 'property' : ... }, ... # data about nodes  ] 
, 'paths' : [ { .. }, {...} # here go the data about relationships ]  } 

也就是说,我想:

  • 节点中的键是节点的属性值 - 例如,key可以是节点本身的id;

如果可能,还要将结果格式化为:

  • 节点作为查询中所有节点的列表
  • 路径作为查询中的关系列表。

我试过了:

MATCH (d:Label_1)-[r:Rel_type]-(t:Label_2)
        where d.uid = '""" + uid + """'
        with d, r, t
        # how to evaluate d.uid as variable?
        # Return d.uid 
        #
        # collating nodes and paths ?
        # Return [d, t] as nodes, [d, r, t] as paths 
        # Return collect([d, t]) as nodes, [d, r, t] as paths

但它做得不对。 我发现了两个问题:

  • 如何在返回结果时将属性值评估为变量?
  • 如何让两个"分开"数据中的表,以便我可以格式化 比如说,上面显示的是json?

1 个答案:

答案 0 :(得分:0)

查看apoc procedure library,它允许您以编程方式构建地图。使用普通密码,您只能使用固定键作为地图键。

这样的事情应该有效。

MATCH (n:Label)
WITH collect([n.key, properties(n)]) as data
RETURN {'nodes' : apoc.map.fromPairs(data) }