密码可选匹配和限制

时间:2017-02-21 21:57:08

标签: neo4j cypher

我希望用查询来满足特定模式,然后使用从第一个查询中的一个节点开始的另一个查询来扩充它。我相信我可以通过这样的查询来做到这一点:

匹配(:p) - [:关系] - (:x) 可选匹配(:p) - [:relationship2] - (:x2)

现在假设我在结尾​​处设置了限制(例如,限制200)。 在使用新节点p进入新的主查询之前,返回的行是否会耗尽所有满足的可选匹配项?或者查询是否可以任意返回可选匹配的子集?

1 个答案:

答案 0 :(得分:0)

1)您的Cypher模式语法似乎很糟糕。对于节点(在括号内),首先是可选标识符,每个可选标签都在冒号后面。对于关系(在方括号内),可选标识符首先出现,类型出现在冒号之后。我怀疑你的例子应该看起来像这样(以便p标识符可用于将2个模式绑定在一起):

MATCH (p)-[relationship:FOO]-(x)
OPTIONAL MATCH (p)-[relationship2:BAR]-(x2)
...

2)Cypher文档没有将LIMIT的行为定义为您所询问的详细程度,因此您应该制作Cypher以获得与您想要的结果尽可能接近的结果。例如,如果您想为x2模式找到的 p返回最多200个MATCH值,则可以使用以下内容:< / p>

MATCH (p)-[relationship:FOO]-(x)
WITH p LIMIT 1
OPTIONAL MATCH (p)-[relationship2:BAR]-(x2)
RETURN x2 LIMIT 200
相关问题