Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法根据条件删除Neo4j节点_Neo4j_Cypher - Fatal编程技术网

无法根据条件删除Neo4j节点

无法根据条件删除Neo4j节点,neo4j,cypher,Neo4j,Cypher,我向数据库添加了一些节点。所有节点的格式如下所示: {"id":"10","guid":"...", "type":"object_1_"} {"id":"11","guid":"...", "type":"object_1_"} ... {"id":"11","guid":"...", "type":"object_N_"} 当我运行一个START n=node(*)RETURN n查询时,这个^^^就是我得到的 但是,当我尝试根据某个条件删除某些节点时,它将不起作用。那么这个 MATCH

我向数据库添加了一些节点。所有节点的格式如下所示:

{"id":"10","guid":"...", "type":"object_1_"}
{"id":"11","guid":"...", "type":"object_1_"}
...
{"id":"11","guid":"...", "type":"object_N_"}
当我运行一个
START n=node(*)RETURN n
查询时,这个
^^^
就是我得到的

但是,当我尝试根据某个条件删除某些节点时,它将不起作用。那么这个

MATCH (n{type:"object_1_"}) OPTIONAL MATCH (n)-[r]-() DELETE n,r
不起作用。我想知道为什么。只有一个微不足道的案例起作用:

MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n, r

但这不是我想要的。我想有一些条件,比如上面的条件,
type
属性是
object\u1
。那么,我如何才能做到这一点呢?

整个问题在于我如何在curl中运行这个查询。不正确的方式是:

curl http://... -H ... -d "{\"query\":\"MATCH (n{type:\"object_1_\"}) 
                           OPTIONAL MATCH (n)-[r]-() DELETE n,r\"}"
Neo4j
解析器没有抛出任何错误消息,但仍然不正确。正确的做法是:

curl http://... -H ... -d "{\"query\":\"MATCH (n{type:'object_1_'})
                          OPTIONAL MATCH (n)-[r]-() DELETE n,r\"}"

匹配(n{type:“object_1_”})返回n
给你什么?我发现了什么问题。我通过命令行中的
curl
发出了这个命令,就像
“{\'query\”:\'MATCH(n{type:\'object\'u1\'})}
一样,即使
curl
neo4j
解析器都没有抛出任何错误消息,事实上查询是不正确的。所以,我必须做
“\MATCH(n{type:'object\u1})
。因此,初学者请注意如何转义引号。以及如何运行查询?这不是neo4j shell或浏览器中的结果。您使用的是rest API吗?好的,您可以将其放在n答案中,供下一个人使用。此外,如果您将json字符串用单引号括起来,则可以在其中使用双引号不必逃避太多。@jjaderberg。感谢您的帮助!我希望neo4j解析器更聪明。这实际上很有趣。问题不在于密码解析器。将
-v
标记添加到curl以查看
HTTP500
错误。然后查看
数据/log/console.log
中的堆栈跟踪。这是Web服务器的js在解析器(Jetty,Jackson)上,这让人窒息。