我有两个查询几乎与下面相同(唯一的区别是r:在查询1中FOR的前面)
Query 1: MATCH p=()-[r:FOR]->() RETURN count(p)
Query 2: MATCH p=()-[FOR]->() RETURN count(p)
当我对Neo4j服务器运行此查询时,它会返回不同的结果。查询1大约是1/3或查询2,我想这是由于查询1已经'组合'结果而查询2没有。(例如a- [FOR] - > c和b- [FOR] - > c合并成1条记录),但只是我的猜测。我试图谷歌或搜索Neo4j文档,但没有运气。有人可以解释这个区别吗?
提前致谢。
答案 0 :(得分:4)
MATCH p=()-[r:FOR]->() RETURN count(p)
此查询将FOR
关系绑定到r
变量(虽然它没有使用它)。
MATCH p=()-[FOR]->() RETURN count(p)
此查询将任何关系(即任何类型)绑定到FOR
变量。
在Cypher中指定关系类型的正确语法是:XXX
,带有前导冒号。第二个查询的正确版本实际上是:
MATCH p=()-[:FOR]->() RETURN count(p)