2014-11-25 173 views
0

Cypher支架Http请求,我想用一些参数,如执行一个HTTP暗号查询:与匹配参数

{"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

你可以有:

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

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

的原因是this comment给出:

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

+0

太好了,谢谢! – matth3o 2014-11-25 18:28:16

1

我觉得您的查询就会变成:

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