按不同结果排序会引发错误

时间:2016-08-29 15:19:10

标签: neo4j cypher

尝试在浏览器中运行以下伪查询:

Match (p:Person)...
return distinct {personID: p.personID...}
order by p.PersonID

引发以下错误:

  

p未定义。

如果我删除“distinct”,那么它可以正常工作。任何想法如何使这个工作?

1 个答案:

答案 0 :(得分:3)

使用RETURN DISTINCT语句删除重复项后,您已创建自定义对象,p.personId不再存在,因此您无法使用它来订购结果。

在创建自定义对象之前,您需要引入一个步骤来创建包含自定义对象的所有元素的不同元组:

MATCH (p:Person)...
WITH DISTINCT p.personId AS personId, p.otherProp AS otherProp...
ORDER BY personId
RETURN {personId: personId, otherProp: otherProp...}