Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 使用apoc.convert.toTree时按属性排序分层数据_Neo4j_Cypher - Fatal编程技术网

Neo4j 使用apoc.convert.toTree时按属性排序分层数据

Neo4j 使用apoc.convert.toTree时按属性排序分层数据,neo4j,cypher,Neo4j,Cypher,Neo4j新手,基于这里提出的类似问题,我尝试了使用Cypher和APOC的各种方法,但没有成功,因为没有一种是排序树组合。假设我有一些层次结构数据,它只是一组带有子节点的根节点,所有节点都有属性“name”。截至目前(使用下面的查询),按名称显示结果时,我的数据类似于: zxcv rtyu asdf qwer wert bbbb fghj yuio 我可以在下面的查询中添加什么,这些查询将按名称排序,以便对整个树进行排序 MATCH p=(n:Code)-

Neo4j新手,基于这里提出的类似问题,我尝试了使用Cypher和APOC的各种方法,但没有成功,因为没有一种是排序树组合。假设我有一些层次结构数据,它只是一组带有子节点的根节点,所有节点都有属性“name”。截至目前(使用下面的查询),按名称显示结果时,我的数据类似于:

zxcv
  rtyu
asdf
  qwer
    wert
  bbbb
    fghj
    yuio
我可以在下面的查询中添加什么,这些查询将按名称排序,以便对整个树进行排序

MATCH p=(n:Code)-[:HAS_CHILD*]->(m)
WHERE NOT ()-[:HAS_CHILD]->(n)
WITH COLLECT(p) AS ps
CALL apoc.convert.toTree(ps) yield value
RETURN value
如果我加上
按值排序.name
,它只对根节点进行排序,因为根节点位于返回值的顶部。在收集之前,我无法确定如何/在何处对节点进行排序,或者在收集之后,我无法确定如何进行收集。乐于使用
apoc.coll.sortNodes
apoc.coll.sort
等,但不太清楚如何使用它们

更新

这会更近一点,但仍然只是对根进行排序

MATCH (n:Code)-[:HAS_CHILD*]->(m)
WHERE NOT ()-[:HAS_CHILD]->(n)
WITH n
ORDER BY n.name
MATCH p=(n:Code)-[:HAS_CHILD*]->(m)
WHERE NOT ()-[:HAS_CHILD]->(n)
WITH COLLECT (p) AS ps
CALL apoc.convert.toTree(ps) yield value
RETURN value
MATCH (n:Code)-[:HAS_CHILD*]->(m)
WHERE NOT (m)-[:HAS_CHILD]->()
WITH n, m
ORDER BY n.name, m.name
MATCH p=(n:Code)-[:HAS_CHILD*]->(m)
WHERE NOT ()-[:HAS_CHILD]->(n)
WITH COLLECT(p) AS ps
CALL apoc.convert.toTree(ps) yield value
RETURN value