我无法从文档中理解这个例子:
START david=node(1)
MATCH david--otherPerson-->()
WITH otherPerson, count(*) as foaf
WHERE foaf > 1
RETURN otherPerson
在 WITH 行中 otherPerson 和 count(*) 做了什么?
您在这里看到的是两个由 with 连接的查询。With 作为第一个查询的返回和第二个查询的“开始”。它设置的是传递的上下文的一部分。
normally you would have
START david=node(1)
MATCH david--otherPerson-->()
RETURN otherPerson, count(*) as foaf
然后在您的调用代码中进行过滤。
with 可以直接在 cypher 中开始下一个查询,它只能看到 with 部分中声明的内容,在这种情况下:otherPerson 和 foaf 第一个查询的其他标识符和数据不再可用。