我想用以下参数执行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}\")
。
我不知道如何在这里使用文字地图。
感谢您的帮助!
答案 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)]