0

我想使用 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) "
4

1 回答 1

0

由于{relationship}是只有一个属性的地图,您可以执行以下操作之一。假设地图是{x: 123}.

  1. 您可以在MATCH模式中使用地图中的属性:

    MATCH (fromNode)-[ {x: {relationship}.x} ]->(toNode)
    
  2. 您可以将值x作为参数传递,而不是使用映射。在此示例中,我假设您已替换{relationship}{x}

    MATCH (fromNode)-[ {x: {x}} ]->(toNode)
    

注意:neo4j 的最新版本已弃用该{x}语法,现在更喜欢$x.

于 2017-05-17T19:40:23.227 回答