Neo4j 不推荐使用的替代关系警告

Neo4j 不推荐使用的替代关系警告,neo4j,cypher,Neo4j,Cypher,密码查询: MATCH (x) WHERE x.uuid = "41f64ab1-6009-4e95-b22b-c833525f6edb" MATCH p = (o)-[:CONTAINS|:HAVING*]->(x) WHERE labels(o) IN ['Box', 'Package'] RETURN p 在Neo4j浏览器中运行会导致警告: **WARNING: This feature is deprecated and will be removed in future v

密码查询:

MATCH (x) WHERE x.uuid = "41f64ab1-6009-4e95-b22b-c833525f6edb" MATCH p = 
(o)-[:CONTAINS|:HAVING*]->(x) WHERE labels(o) IN ['Box', 'Package'] RETURN p
在Neo4j浏览器中运行会导致警告:

**WARNING: This feature is deprecated and will be removed in future versions.**

The semantics of using colon in the separation of alternative relationship 
types in conjunction with the use of variable binding, inlined property 
predicates, or variable length will change in a future version.
如何重新编写此查询以消除此警告

提前感谢。

这可能就够了:

MATCH (x) WHERE x.uuid = "41f64ab1-6009-4e95-b22b-c833525f6edb"
MATCH p = (o)-[*]->(x) 
WHERE labels(o) IN ['Box', 'Package']
AND ALL (rs IN relationships(p) WHERE type(rs) IN ['CONTAINS','HAVING'])
RETURN p

希望这能有所帮助。

这一反对意见不是关于无法使用关系类型替代方案,而是关于其语法–请参阅。现在只有第一种类型有冒号,即不是
:R1 |:R2
,而是
:R1 | R2
。Neo4j浏览器中的弃用警告表明,以前的语法将来会有新的语义

在模式中指定关系类型实际上比事后过滤路径更有效,这是Tom Geudens的解决方案的执行方式