我有下面的图表(try it in the neo4j console)。从中间开始,如何编写一个密码查询,将结果限制为仅包含每个2级节点中的一个,例如:只返回红色节点?
答案 0 :(得分:3)
我假设你想要在第二级随机选择。在这种情况下,以下Cypher声明完成了这项工作:
START n=node:node_auto_index("name:start")
MATCH (n)-[:link]->(first)
WITH first
MATCH first-[:link]->(second)
WITH first, collect(second) AS coll
RETURN first, coll[toInt(length(coll)*rand())]
我们使用collect
将第二度节点放入每个first
节点的集合中。使用数组下标运算符,我们随机选择一个元素。 rand()
返回0到< 1之间的值,因此我们需要乘以收集长度。