neo4j rest API resultDataContents:graph没有真正返回一个图形?

时间:2014-09-11 01:54:17

标签: neo4j

要制作另一个d3查看器,我想从其他查询中获取图表。

根据我的理解,声明" resultDataContent':[' graph']会返回图表。相反,它返回一个子图列表,因此我需要收集和区分节点。有没有办法简单地获得完整的子图?

例如,我把这4个节点

CREATE (a:Person {name:'a'})
CREATE (b:Person {name:'b'})
CREATE (c:Person {name:'c'})
CREATE (d:Person {name:'d'})
CREATE (a)-[:KNOWS]->(b)
CREATE (a)-[:KNOWS]->(c)
CREATE (b)-[:KNOWS]->(c)
CREATE (c)-[:KNOWS]->(d)

但是使用以下查询调用POST查询将返回2个results.data,每个结果都包含一个"图形",包含2个节点和一个链接?

{"statements":[
    {
    "statement":"MATCH (p:Person {name:{pName}})-[l:KNOWS]-(q:Person) RETURN p,l,q",
    "parameters":{"pName":"a"},
    "resultDataContents":["graph"]
    }
]}

有没有办法返回一个子图,而不需要重新组合结果?

感谢您的帮助, 亚历

2 个答案:

答案 0 :(得分:1)

我认为问题是您的查询会将同一个人返回两次。将return语句更改为:

RETURN collect(distinct(p)),collect(l),collect(distinct(q))

这会给你以下回应:

{
  "results": [
    {
      "columns": [
        "collect(distinct(p))",
        "collect(l)",
        "collect(distinct(q))"
      ],
      "data": [
        {
          "graph": {
            "nodes": [
              {
                "id": "1849644",
                "labels": [
                  "Person"
                ],
                "properties": {
                  "name": "b"
                }
              },
              {
                "id": "1849645",
                "labels": [
                  "Person"
                ],
                "properties": {
                  "name": "c"
                }
              },
              {
                "id": "1849643",
                "labels": [
                  "Person"
                ],
                "properties": {
                  "name": "a"
                }
              }
            ],
            "relationships": [
              {
                "id": "4052753",
                "type": "KNOWS",
                "startNode": "1849643",
                "endNode": "1849644",
                "properties": {}
              },
              {
                "id": "4052754",
                "type": "KNOWS",
                "startNode": "1849643",
                "endNode": "1849645",
                "properties": {}
              }
            ]
          }
        }
      ]
    }
  ],
  "errors": []
}

答案 1 :(得分:0)

在处理类似的事情(https://stackoverflow.com/questions/26067792/neo4j-cypher-gui)时,我遇到了同样的问题。文档:http://docs.neo4j.org/chunked/stable/rest-api-transactional.html对主题非常清楚