neo4j - 使用 neo4j 查找图中的所有路径
问题描述
我有一个 DAG,我想使用 neo4j 找到其中的所有路径。为此,我使用以下查询:
MATCH (n)-[:REL]->(leaf)
RETURN n,leaf ;
但是,此查询仅返回给我的边缘。但是我希望我的输出具有以下形式:
a->b->c->d->e->f->g->h->i
a->b1->c1->d1->e1->f1->g1->h1->i1
有什么方法可以用来获得这个输出吗?
解决方案
我想你会想看看变长模式匹配。您需要添加限制,以便您的起始节点是根节点,结束节点是叶节点,否则您将获得图中的每个子路径。
此外,你真的应该使用标签。举例来说,我将在我的 Cypher 代码段中添加 :Node:
MATCH path = (root:Node)-[:REL*]->(leaf)
WHERE NOT ()-[:REL]->(root) AND NOT (leaf)-[:REL]->()
RETURN path
推荐阅读
- python - 它如何获取列表列表中的特定参数?
- android-studio - Android Studio 在菜单栏中有错误的名称
- bash - 当做出无效选择时让菜单循环 BASH
- c# - 如何以编程方式设置 GridView foreach 循环中的单元格值?
- c++ - 从 Levenberg Marquardt 迭代 OpenCV 中恢复重投影误差
- automation - 如何为 Windows 和 linux 设置单一的 ansible 角色?
- mysql - 从 sqlite 语法到 mysql 语法
- html - selectAllText deselectAllText 引导选择
- c++ - 编译时高效地从 boost::hana 元组中删除重复项
- angular - 如何将 AbstractControl 转换为模板中的 FormControl?