我想为我正在进行的项目编写CREATE关系声明。声明必须是这样的
CREATE (match (p:Halt) where p.name="Ananda College" return p)-[:next_halt {route:['103'],dist:1.45}]->(MATCH (p:Halt) where p.name="Borella" return p)
正如您所看到的,我希望起始节点和结束节点具有来自另一个CQL语句的值。 但是当我运行此查询时,似乎存在语法错误。我已经阅读了一些教程,看看我的查询错在哪里,但作为初学者,我无法说出来。
Invalid input '(': expected whitespace, comment, node labels, MapLiteral, a parameter, ')' or a relationship pattern (line 1, column 15 (offset: 14))
"CREATE (match (p:Halt) where p.name="Ananda College" return p)-[:next_halt {route:['103'],dist:1.45}]->(MATCH (p:Halt) where p.name="Borella" return p)"
答案 0 :(得分:1)
你的语法相当混乱。请重新阅读开发文档,然后查看Cypher备忘单。
至于正确的语法,你甚至不需要嵌套来获得你想要的东西。首先,在开始和结束节点上匹配,然后可以在查询的其他部分使用绑定变量,例如创建关系:
MemoryError
如果您不确定节点(或关系)是否存在,则可以使用MERGE,它将在现有节点(或关系)上进行MATCH,或者如果它们不存在则创建它们。