选择具有特定属性的最近邻居

时间:2015-11-30 09:55:58

标签: neo4j

这个问题似乎有些天真,但是有可能选择具有特定属性值的树的最近顶点吗?例如,让我们创建

CREATE (a: IM { level:0 })-[:conn { weight: 1 }]->(fchild1:task { completed:false })
CREATE (a)-[:conn { weight: 1 }]->(fchild2:task { completed:true })
CREATE (fchild1)-[:conn { weight: 1 }]->(b:task { completed:false })
CREATE (fchild1)-[:conn { weight: 1 }]->(c:task { completed:true })
CREATE (fchild1)-[:conn { weight: 1 }]->(d:task { completed:false })
CREATE (fchild2)-[:conn { weight: 1 }]->(e:task { completed:false })
CREATE (fchild2)-[:conn { weight: 1 }]->(f:task { completed:false })

是否可以为c选择已完成= false的最近节点?

1 个答案:

答案 0 :(得分:1)

你想在树上走来走去吗?无论哪种方式都不应该太难:

MATCH path, (a:IM)-[*1..10]-(other:IM)
WHERE <some match to get your `a` node> AND other.completed = false
RETURN other, length(path) AS distance
ORDER BY length(path)
LIMIT 1

您可以根据需要增加10或删除1..10。根据您的图表,这可能会大大增加您的查询时间。