具有匹配参数的Cypher Http请求

时间:2014-11-25 07:53:56

标签: rest neo4j cypher

我想用以下参数执行http cypher查询:

{"statements":
 [
  {"statement":"MATCH path=(p:Person {props})-[*..100]->() RETURN [n in nodes(path)]",
   "parameters":{"props":{"name":"Lucille"}}
  }
 ]
}

但是我收到以下错误Parameter maps cannot be used in MATCH patterns (use a literal map instead, eg. \"{id: {param}.id}\")

我不知道如何在这里使用文字地图。

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

你可以拥有:

{
  "statements": [{
    "statement": "MATCH path=(p:Person { name: {name} })-[*..100]->() ...",
    "parameters": { "name": "Lucille" }
  }]
}

MATCH path=(p:Person { name: props.{name} }) ...,同时保持初始parameters

原因在this comment

中给出
  

“与CREATE中的属性不同,MATCH要求地图为文字。这是因为在编译查询时必须事先知道属性名称,以便有效地规划其执行。”

答案 1 :(得分:1)

我认为你的查询会变成:

MATCH path=(p:Person {id: {props}.id })-[*..100]->() 
RETURN [n in nodes(path)]