neo4j - 如何使用密码查询获取连接节点之间的边缘类型
问题描述
我正在尝试从 neo4j 图中获取邻接矩阵。该矩阵包含丰富的特征。这意味着,如果两个节点相连,则将节点的类型(类型是节点的字段)和边类型放入相应的单元格中。这是一个样本矩阵:
[
[0, 'node_1_type : edge_type : node_2_type', 0],
...
]
这是我要尝试的密码查询。但我不知道如何获取连接节点的 edge_type。
MATCH (n)
WITH collect(n) AS Nodes
WITH [n IN Nodes |
[m IN Nodes |
CASE size((n)-[]->(m))
WHEN 0 THEN 0
ELSE n.type + ':' + 'edge-type ??' + ':' + m.type
END
]
] AS AdjacencyMatrix
RETURN AdjacencyMatrix;
您能否帮助如何获得连接节点之间的边缘类型。
解决方案
由于您无法在CASE
使用中获得命名结果UNWIND
:
MATCH (n)
WITH collect(n) AS Nodes
UNWIND Nodes AS n
UNWIND Nodes AS m
OPTIONAL MATCH (n)-[r]->(m)
WITH n, m,
CASE r
WHEN NULL THEN 0
ELSE n.type + ':' + type(r) + ':' + m.type
END AS e
WITH m, collect(e) AS row
WITH collect(row) AS AdjacencyMatrix
RETURN AdjacencyMatrix;
推荐阅读
- magento - 如何在前端编辑 Amasty Magento One Page Checkout 页面以在付款方式部分添加标签?
- c# - 用纯色或透明的笔触绘制 WPF 多边形
- python - 我如何模拟 requests.Session.send() 方法?
- django - 用于使用外部 REST API 的 Django CRUD 应用程序示例/插件?
- python - 如何在 for 循环之前用零初始化不同的变量(同时)?
- html - 如何确保表格正确排列
- python-3.x - python中有没有办法通过时间戳迭代日志文件?
- ansible - 从剧本中传递/更新全局变量(例如组变量)?
- django - 迁移 postgresql 中的模型时,关于 postgresql TypeError 的 django-cms 迁移问题
- java - 弹簧靴。复合键和级联