通过Transactional Cypher HTTP端点添加大量弧

时间:2017-01-12 13:55:32

标签: http neo4j cypher

我想通过HTTP端点向Neo4j 2.3.7数据库添加几千个弧。

实现这一目标的合理快捷方法是什么?

1 个答案:

答案 0 :(得分:0)

如果所有新的"关系" (这是" arcs"的正确neo4j术语)将具有相同的关系类型(例如," BAR"),然后您进行单个参数化Cypher查询以添加该数量的关系

在这个例子中,我假设作为data参数传递的值是一个类似于此的集合:

[
  {a:1, b:2, props: {x: 100, y: "abc", z: 500}},
  {a:3, b:2, props: {x: 123, y: "bar", z: 99}},
  ...
]

以下是相应的查询(其中id是用于标识正在创建的每个关系的唯一端节点的样本节点属性。)

UNWIND {data} AS d
MATCH (a {id: d.a}), (b {id: d.b})
CREATE (a)-[r:BAR]->(b)
SET r = d.props;

注意:如果a节点和/或b节点始终具有相同的标签,则MATCH子句应指定标签,您还应创建相应的索引(例如,CREATE INDEX ON :Foo(id)。这将使查询更具性能。