Neo4j Cypher中有多个不相关的查询?

时间:2014-02-14 11:41:11

标签: neo4j cypher

http://localhost:7474/browser/不支持多个unrelated查询吗?

此代码:

MATCH (a {cond:'1'}), (b {cond:'x'}) CREATE a-[:rel]->b
MATCH (a {cond:'2'}), (b {cond:'y'}) CREATE a-[:rel]->b
MATCH (a {cond:'3'}), (b {cond:'z'}) CREATE a-[:rel]->b

导致错误:

  CREATE和MATCH之间需要

WITH

但由于我的查询不相关,我认为我不需要WITH

如何在不必一次输入一行的情况下完成上述操作?

4 个答案:

答案 0 :(得分:16)

作为一项解决方案,你可以做到:

MATCH (a {cond:'1'}), (b {cond:'x'}) CREATE a-[:rel]->b
WITH 1 as dummy
MATCH (a {cond:'2'}), (b {cond:'y'}) CREATE a-[:rel]->b
WITH 1 as dummy
MATCH (a {cond:'3'}), (b {cond:'z'}) CREATE a-[:rel]->b

另请参阅导入博客文章:http://blog.neo4j.org/2014/01/importing-data-to-neo4j-spreadsheet-way.html

答案 1 :(得分:3)

我不知道通过Neo4j浏览器一次发送多个不相关的查询的方法。但是在REST级别上,使用transactional HTTP endpoint完全可以实现这一点。

答案 2 :(得分:3)

您可以通过cypher-shell命令行工具向Neo4j发送多个查询:

cypher-shell --format plain < query.txt

其中query.txt包含由分号分隔的多个独立查询。一旦启动了cypher-shell,这也可以交互工作。

答案 3 :(得分:3)

在最新版本中,开发人员在Neo4j浏览器中添加了一个选项以执行多个查询。

打开浏览器设置,然后点击启用多语句查询编辑器

然后将分号放在每个查询的末尾,然后将它们全部放在浏览器控制台中。

Screenshot

这是它的样子

Screenshot