如何在Neo4jrb中设置“resultDataContents”?

时间:2016-05-19 10:36:33

标签: ruby-on-rails d3.js neo4j neo4j.rb

我希望使用Neo4jrb在Rails应用程序中使用前端库D3.js可视化来自Neo4j的数据。例如,我可以使用以下查询来获取我的图表数据。

query = "MATCH path = (a)-[b]->(c) RETURN path"
result = Neo4j::Session.current.query(query)

但是这个查询并没有给我我想要的确切数据。

根据Neo4j data visualisation guide,可以将参数resultDataContents设置为"graph"。 ( Neo4j documentation表示“resultDataContents”)

这正是我的申请所需要的。是否有可能在Neo4jrb中设置此参数,或者另一个想法如何实现这样的结果?

1 个答案:

答案 0 :(得分:1)

不幸的是目前没有。构建neo4j-core gem(neo4j gem使用的)以抽象出REST格式。 "graph"格式以不同的方式返回数据。

你有几个选择。您可以自己创建JSON查询,也可以从执行的查询中检索节点和关系,然后构建自己返回的节点/关系结构。如果您想切换到Bolt,这可能会更具未来性。

您可以根据自己的情况执行此操作:

query = "MATCH path = (a)-[b]->(c) RETURN nodes(path) AS nodes, rels(path) AS rels"
result = Neo4j::Session.current.query(query)
response = {nodes: [], rels: []}
result.each do |row|
  response[:nodes].concat(row.nodes)
  response[:rels].concat(row.rels)
end
response[:nodes].uniq!
response[:rels].uniq!