Arrays Cypher LinkedList-如何获取长度?
继续讨论作为可行数组的linkedlist,其中每个跃点深度表示可以排序的索引: 我最近一直在尝试捕获属于父节点的每个阵列的报告。此报表包括唯一的relationshiptype和链表数组中元素的计数:Arrays Cypher LinkedList-如何获取长度?,arrays,neo4j,cypher,Arrays,Neo4j,Cypher,继续讨论作为可行数组的linkedlist,其中每个跃点深度表示可以排序的索引: 我最近一直在尝试捕获属于父节点的每个阵列的报告。此报表包括唯一的relationshiptype和链表数组中元素的计数: [ { reltype : "123A_RelationshipTitleOne", depthcount : 5 }, { reltype : "123A_RelationshipTitleTwo", depthco
[
{
reltype : "123A_RelationshipTitleOne",
depthcount : 5
}, {
reltype : "123A_RelationshipTitleTwo",
depthcount : 9
}, {
reltype : "123A_RelationshipTitleThree",
depthcount : 42
}
]
我们接近解决方案,但查询时间非常慢,计数量是预期值的两倍
在stackoverflow上,我们记录了对linkedlist类似数组的功能的查询,包括在开始时取消移位、在索引处插入、在索引处替换以及在“数组”的末尾推送
我希望在数组长度特性方面也能得到帮助
我非常感谢你能提供的帮助。类似于
MATCH p = (a:Head {id:234})-[:NEXT*..20]->(b:End)
RETURN max(length(path))
差不多
MATCH p = (a:Head {id:234})-[:NEXT*..20]->(b:End)
RETURN max(length(path))
这可能是您正在寻找的:
MATCH (n { id: '123A' })
OPTIONAL MATCH p=(n)-[r*]->(c)
WHERE (type(r[0]) STARTS WITH '123A') AND NOT (c)-->()
RETURN n, COLLECT({ id: type(r[0]), depth: length(p)}) AS leafreport;
NOT(c)-->()
测试用于确保查询只收集“完整路径”,而不是部分路径。这假设在这个用例中,每个链表都以一个没有传出关系的节点结束
这显示了一些示例数据的结果
注:
n
,则不会返回任何行n
,但没有类型以“123A”开头的初始关系,则leafreport
将是[{id:null,depth:null}]
x
语法。在以前的版本中,您必须使用可读性较差的regexp:x=~“123A.*”
这可能是您正在寻找的:
MATCH (n { id: '123A' })
OPTIONAL MATCH p=(n)-[r*]->(c)
WHERE (type(r[0]) STARTS WITH '123A') AND NOT (c)-->()
RETURN n, COLLECT({ id: type(r[0]), depth: length(p)}) AS leafreport;
NOT(c)-->()
测试用于确保查询只收集“完整路径”,而不是部分路径。这假设在这个用例中,每个链表都以一个没有传出关系的节点结束
这显示了一些示例数据的结果
注:
n
,则不会返回任何行n
,但没有类型以“123A”开头的初始关系,则leafreport
将是[{id:null,depth:null}]
x
语法。在以前的版本中,您必须使用可读性较差的regexp:x=~“123A.*”
非常感谢你的帮助,尽管我仍然有困难。在这个zip中,我包含了两个场景的json输出(一个有2个子节点,另一个有6个子节点)seadesyndication.com/cypher.zip标记为initial的文件是MATCH()-[r:
123A_Foo
]->()RETURN的结果,其他文件是上述查询的派生。第一个示例(w/2children)中的子对象仅具有123A_-Foo关系,而另一个示例中的子对象具有多个关系。两个查询都运行得比较慢,因为我认为查询在COLLECT上循环太多。6个子节点示例通常会挂起,而带有查询的2个子节点示例会返回一个包含9个元素的leafreport,而不是一个包含[{id:123A_-Foo,depth:2}或{id:123A_-Foo,depth:3}]的项非常感谢你的帮助,尽管我仍然有困难。在这个zip中,我包含了两个场景的json输出(一个有2个子节点,另一个有6个子节点)seadesyndication.com/cypher.zip标记为initial的文件是MATCH()-[r:123A_Foo
]->()RETURN的结果,其他文件是上述查询的派生。第一个示例(w/2children)中的子对象仅具有123A_-Foo关系,而另一个示例中的子对象具有多个关系。这两个查询都运行得比较慢,因为我认为查询在COLLECT上循环太多。6个子节点示例通常会挂起,而带有查询的2个子节点示例会返回一个包含9个元素的leafreport,而不是一个在数组中找到[{id:123A_-Foo,depth:2}或{id:123A_-Foo,depth:3}]的项