我想使用cypher关系传递给我的neography查询,并让查询在该关系上执行。
我目前收到错误:
query_response = @neo.execute_query("MATCH (fromNode)-[{relationship}]->(toNode)
WHERE fromNode.bot_client_id = {bot_client_id} AND toNode.epoch_utc_i > {fromTime} AND toNode.epoch_utc_i < {toTime}
RETURN toNode.value
LIMIT {limit}",
{
:fromTime => fromTime, :toTime => toTime, :bot_client_id => @bot_client_id,
:limit => limit, :relationship => relationship.to_sym
}
)
Neography::SyntaxException: Parameter maps cannot be used in MATCH patterns (use a literal map instead, eg. "{id: {param}.id}") (line 1, column 21 (offset: 20))
"MATCH (fromNode)-[{relationship}]->(toNode) "
答案 0 :(得分:0)
由于{relationship}
是仅包含单个属性的地图,因此您可以执行以下操作之一。我们说地图是{x: 123}
。
您可以使用MATCH
模式中的地图中的属性:
MATCH (fromNode)-[ {x: {relationship}.x} ]->(toNode)
您可以将x
的值作为参数传递,而不是使用地图。在此示例中,我假设您已将{relationship}
替换为{x}
:
MATCH (fromNode)-[ {x: {x}} ]->(toNode)
注意:最新版本的neo4j已弃用{x}
语法,现在更喜欢$x
。