要制作另一个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"]
}
]}
有没有办法返回一个子图,而不需要重新组合结果?
感谢您的帮助, 亚历
答案 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对主题非常清楚