neo4j - 具有不同标签和关系的不同节点的 Neo4j 子图(如果有)
问题描述
我最近开始使用 neo4j 及其查询语言“cypher”来处理建筑/计量数据。
我当前的图形数据库由不同的节点组成(具有不同的标签,例如:point、meter、elec、equip ..etc. 仅举几例),并且每个节点都有不同的属性(在此上下文中不相关)。
我想做的是获得具有不同标签的不同节点的子图。例如,我想将所有节点标记为“点”以及标记为“装备”的节点和标记为“米”的节点。为此,我尝试了以下查询:
MATCH (p:point)
MATCH (e:equip)
MATCH (m:meter)
RETURN p, e, m
但是,这不起作用,因为:此查询在断开连接的模式之间构建笛卡尔积。
我正在尝试获取这些,以便如果标记为“point”的节点连接到“equip”或“meter”节点,我会得到关系。如果没有任何东西连接到“点”节点,那么它将是独立的。因此,我可以有一个带有“点”到“仪表”/“装备”连接的子图,并在视觉上识别孤立的“点”。
我也尝试过类似的东西:
MATCH (p:point)--(e:equip)
RETURN p,e
但这只会返回与“装备”节点有些连接的“点”节点。也没有给我标记为“点”的孤立节点。
期待您对此的意见(我猜是简单的情况)。
最好的!
解决方案
以下查询将返回每个point
节点及其所有相关节点的列表,以及其所有相关equip
节点的另一个列表meter
。
MATCH (p:point)
RETURN p, [(p)--(e:equip) | e] AS es, [(p)--(m:meter) | m] AS ms
推荐阅读
- c# - 无法使用 C# 将数据导入 SQL Server 数据库
- javascript - 如何在 JavaScript 中为 Firebase 文件打开保存文件对话框
- c# - 如何在C#中通过文本框AutoCompleteMode在列表框中搜索
- azure - 我可以删除 Azure 上的 ForbiddenRequests 和 ServerErrors
- python - 如何设置 settings.DEBUG == True 仅适用于超级用户, False 适用于所有用户
- python - 目前,NLTK pos_tag 只支持英文和俄文(即 lang='eng' 或 lang='rus')
- clojure - 通配符 Compojure Routes 发出警告
- java - 每 2 秒刷新一次从 JSON 响应中填充的 listView
- ios - 使用 Swift 在整个应用程序中更改 UILabel 的 textColor
- java - 整数除法:为什么打印错误的值?