Neo4j REST Cypher和params:通过REST可以成为Cypher查询中的参数

时间:2012-11-05 01:06:17

标签: rest neo4j cypher

我正在尝试使用params使这个查询工作没有运气。我总是得到同样的错误。

expected either node or relationship here
"start n={start} match n-[r:{rel}]-() return n, n.name, r, r.since"
         ^

然后,我删除了{start} param,我使用了一个backtip(`)来表示关系,它就像一个魅力。

start n=node(*) match n-[r:`{rel}`]-() return n, n.name, r, r.since

那么,使用params的正确方法是什么?在查询中我可以在哪里使用它们?

以防万一,{start}后退也不起作用。下一个请求也不起作用。

POST /db/data/cypher {"query": "start n=node({start}) match n-[r:`{rel}`]-() return n, n.name, r, r.since", "params": {"start": "*", "rel": "l353456"}}

我正在使用1.9M01

2 个答案:

答案 0 :(得分:3)

反对start(因为start是关键字)看起来像这样

POST /db/data/cypher {"query" : "start n=node({`start`}) return n", "params": {"start":0}}

在Neo4j Http控制台上测试。

答案 1 :(得分:0)

Javier,http://docs.neo4j.org/chunked/snapshot/cypher-parameters.html列出了模式,所以我认为

start n=({start}) match n-[r:XXX]-() return n, n.name, r, r.since

是你能做的。关系类型被视为更改查询的结构,因此不可参数化。您必须重新提交查询或在客户端代码中连接查询。