在 cypher 查询中,我有多个结果,我现在使用 collect 我如何通过 cypher 中的 collect 属性订购?
MATCH(u:User)
WITH COLLECT({name:u.name,date:u.date}) AS userinfo
RETURN userinfo
Run Code Online (Sandbox Code Playgroud)
或者在有多个集合已合并的情况下
MATCH(u:User)-[r:CreatedBy]->(p:Project)
WITH COLLECT({name:p.name,date:p.date}) AS info
MATCH(i:Institue)-[owner:Owner]->(i:Institute)
WITH COLLECT({instituteName:i.name,date:i.date}) AS instituteinfo,info
WITH COLLECT(instituteinfo + info) AS alldata
RETURN alldata
Run Code Online (Sandbox Code Playgroud)
在收集用户节点之前,您只需根据您选择的属性对用户节点进行排序。像这样的东西..,
MATCH(u:User)
WITH u
ORDER BY u.name
WITH COLLECT({name:u.name,date:u.date}) AS userinfo
RETURN userinfo
Run Code Online (Sandbox Code Playgroud)
或者,如果您希望组合多个集合并生成单个有序集合,您可以像这样重新组合它们......
MATCH(u:User)-[r:CreatedBy]->(p:Project)
WITH COLLECT({name:p.name, date:p.date}) AS info
MATCH(i:Institue)-[owner:Owner]->(i:Institute)
WITH COLLECT({instituteName:i.name, date:i.date}) AS instituteinfo,info
WITH instituteinfo + info AS alldata
UNWIND alldata as node
WITH node
ORDER BY node.name
WITH COLLECT (DISTINCT node) as alldata
RETURN alldata
Run Code Online (Sandbox Code Playgroud)