如何在 Neo4jrb 中设置 "resultDataContents"?

How to set "resultDataContents" in Neo4jrb?

我想使用 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 中设置这个参数,或者另一个想法如何实现这样的结果?

很遗憾,目前没有。 neo4j-core gem(neo4j gem 使用)的构建是为了抽象出 REST 格式。 "graph" 以不同的方式格式化 returns 数据。

你有几个选择。您可以自己进行 JSON 查询,也可以从您执行的查询中检索节点和关系,然后构建您自己的 nodes/relationships 结构并返回。如果您想切换到 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!