neo4j rest api删除示例

neo4j rest api删除示例,neo4j,Neo4j,目前,我正在使用事务HTTP端点删除所有节点和关系。我可以用浏览器来做。但当我做同样的事情时,这句话并没有得到认可。下面是我试图实现它的方式 URI: http://xyz:7479/db/data/transaction 方法:邮寄 内容类型:application/json { "statements" : [ { "statement" : "MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r" } ] } 响应:{“提交”

目前,我正在使用事务HTTP端点删除所有节点和关系。我可以用浏览器来做。但当我做同样的事情时,这句话并没有得到认可。下面是我试图实现它的方式

URI: http://xyz:7479/db/data/transaction
方法:邮寄 内容类型:application/json

{   "statements" : [ {     "statement" : "MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r"     } ] }
响应:
{“提交”:http://xyz:7479/db/data/transaction/172/commit“,”结果“:[{”列“:[],”数据“:[]}],”交易“:{”到期“:“2014年9月15日星期一14:15:31+0000”},”错误“:[]}

你能告诉我我做得对不对吗?为什么节点没有被删除?或者有没有其他替代方法


提前感谢。

从外观上看,您正在尝试使用事务端点删除节点。这是可以的,但是您必须提交事务才能使更改生效。提交URL将与响应一起发送回您(
http://xyz:7479/db/data/transaction/172/commit
在您的示例中)。每个事务的URL都不同,因此您必须使用发送回您的URL发出请求

只需将
/commit
添加到原始URL,即可避免发送第二个提交事务的请求:

http://xyz:7479/db/data/transaction/commit
这将导致事务在单个请求中启动和提交。你可以读到它


编辑:如其他人所述,下面描述的端点不推荐使用:

话虽如此,事务通常只针对复杂用例(当一个查询依赖于另一个查询时,至少有两个查询)。在您的示例中,似乎不需要事务。如前所述,您可以使用普通的old
/db/data/cypher
端点

您的请求主体可以如下所示:

{
  "query" : "MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r",
  "params" : {}
}

只需记住添加
Accept
Content-Type
标题。

正如@Maciej所提到的,uri应该以/commit结束

顺便说一句,正文不正确,此正文用于不推荐使用的cypher端点

它应该包含与此类似的内容:

{ “语句”:[{“语句”:“匹配(n)可选匹配(n)-[r]-()删除r,n”}] }

请参阅以下文档:


根据文档,您提到的请求主体已被弃用。我正在做一个复杂的查询,我只是拿出了一部分。哦,你说得对。我已经用了很长时间了。自从什么时候它被弃用了?@christophe:使用/commit,它工作得很好,但是当它在事务中运行语句时,即使在commit之后也不行working@MaciejSz从2.1开始。*Ithink@Sandeep.Mulawad您能解析正在发送的curl请求吗?@Sandeep.Mulawad在提交后运行该语句是什么意思?如果事务已提交,则需要打开一个新的事务,或使用如上所述的“打开并提交”。