我正在尝试做的事情
对于 Neo4j 来说相对较新,我试图在Neo4j图形数据库中使用Cypher查找某些节点。节点应通过某种类型的关系链连接,并具有关系的进一步条件:
// Cypher
START self = node(3413)
MATCH (self)<-[rel:is_parent_of*1..100]-(ancestors)
WHERE rel.some_property = 'foo'
RETURN DISTINCT ancestors
出了什么问题
如果我删除 depth 部分,则查询有效,但当然,然后只允许和 之间的*1..100
一种关系。self
ancestors
但是,如果我通过引入 depth允许ancestors
距离 几步之遥,则查询将失败:self
*1..100
错误:应该rel
是地图,但它是一个集合
我想,也许这种语法定义rel
为is_parent_of*1..100
而不是定义rel
为类型关系is_parent_of
并允许更大的关系深度。
所以,我试图通过使用括号来明确我的意图:[(rel:is_parent_of)*1..100
。但这会导致语法错误。
我将不胜感激任何帮助来解决这个问题。谢谢!