首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >具有不同标签和关系的不同节点的Neo4j子图(如果有的话)

具有不同标签和关系的不同节点的Neo4j子图(如果有的话)
EN

Stack Overflow用户
提问于 2020-09-11 03:50:02
回答 3查看 192关注 0票数 0

我最近开始使用neo4j和它的查询语言"cypher“来处理构建/计量数据。

我当前的图形数据库由不同的节点组成(有不同的标签,如:点、表、电、设备..etc )。仅举几个例子,每个属性都有不同的属性(与此上下文无关)。

我想做的是,得到一个有不同标签的不同节点的子图。例如,我想得到所有的节点标记为“点”,以及标记为“装备”和那些标记为“米”。为此,我尝试了以下查询:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MATCH (p:point)
MATCH (e:equip)
MATCH (m:meter)
RETURN p, e, m

但是,这不起作用,因为:这个查询在断开连接的模式之间构建了一个笛卡儿产品.

我试图得到这些,以便,如果一个节点标记为“点”连接到一个“装备”或“米”节点,我将得到关系。如果没有任何东西连接到“点”节点,那么它将是独立的。因此,我可以有一个子图与“点”到“米”/“装备”连接和视觉识别孤立的“点”。

我也尝试过这样的方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MATCH (p:point)--(e:equip)
RETURN p,e

但这只返回“点”节点,这些节点在某种程度上连接到“设备”节点。也没有给出标记为"point“的孤立节点。

期待您对此的投入(我猜是一个简单的案例)。

最好的!

EN

回答 3

Stack Overflow用户

发布于 2020-09-11 09:54:21

下面的查询将返回每个point节点,以及其所有相关equip节点的列表,以及其所有相关meter节点的另一个列表。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MATCH (p:point)
RETURN p, [(p)--(e:equip) | e] AS es, [(p)--(m:meter) | m] AS ms
票数 0
EN

Stack Overflow用户

发布于 2020-09-11 10:41:35

对于这个特定的子集示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MATCH (p:point)--(e:equip)
RETURN p,e

如果您在Neo4j客户端中显示一个图形,它将显示输出,我认为您希望看到这样一个简单的查询(这上面的许多变体也同样有效)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MATCH (a:ACTOR), (m:MOVIE)
OPTIONAL MATCH p=(a)--(m)
return a, m, relationships(p)

翻译到你的数据集,像这样吗?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MATCH (p:point), (e:equip)
OPTIONAL MATCH t=(p)--(e)
return p, e, relationships(t)

在neo4j浏览器中运行它并查看表输出,您将看到客户机在创建显示视图(删除空值和重复项)时正在简化额外的返回数据。

如果您的目标是最小化和重构返回的数据,那么最好的方法可能取决于您从哪种语言调用,以及您需要/希望如何对其进行格式化,但是下面是一个使用neo4j浏览器/桌面客户机的快速示例查询,它可能为您提供一些想法并帮助您重新构造密码查询的内容。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MATCH (a:ACTOR), (m:MOVIE)
OPTIONAL MATCH t=(a:ACTOR)--(m:MOVIE)
with collect(distinct a) + collect(distinct m) + collect(relationships(t)) as output
return output

翻译到你的数据集,像这样吗?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MATCH (p:point), (e:equip)
OPTIONAL MATCH t=(p:point)--(e:equip)
with collect(distinct p) + collect(distinct e) + collect(relationships(t)) as output
return output

(将neo4j客户端中的表输出与前面的查询进行比较)

参考文章

票数 0
EN

Stack Overflow用户

发布于 2022-04-28 14:11:05

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
match (n) where n:point or n:equip or n:meter  return n

解释一下。为了避免创建笛卡儿产品,您只需进行一次匹配。使用where条件,您可以选择标有“点”或“设备”的模式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63846507

复制
相关文章
uniapp根据不同的状态渲染不同的标签
<view class="text-grey text-xs"> <button v-if="item.isLeave === 0">离厂解绑</button> <span v-else > {{item.leaveTime | formatDate }} </span> </view> json数据 { "msg": "查询成功", "total": 15, "c
王小婷
2021/07/08
1.6K0
策略模式:处理不同策略具有不同参数的情况
策略模式确实在处理不同策略需要不同参数的情况下会显得有些复杂。然而,这并不意味着策略模式不能在这种情况下使用。有几种可能的解决方案:
运维开发王义杰
2023/08/16
6690
策略模式:处理不同策略具有不同参数的情况
标签打印软件如何实现不同标签打印不同份数
前两天有人咨询小编标签打印软件中不同标签打印不同份数是如何实现的,大家都知道标签重复打印的份数如果一样,直接在标签打印软件中设置就行,但是,如果要实现不同标签批量打印不同份数,我们可以利用数据处理工具对数据源进行简单的处理,接下来我们就看下如何实现。
中琅软件
2019/07/06
7440
115. 不同的子序列
一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,”ACE” 是 “ABCDE” 的一个子序列,而 “AEC” 不是)
张伦聪zhangluncong
2022/10/26
3980
动态规划:不同的子序列
字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE" 是 "ABCDE" 的一个子序列,而 "AEC" 不是)
代码随想录
2021/04/07
4490
动态规划:不同的子序列
Neo4J:创建带关系的节点
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
程裕强
2019/10/22
2.5K0
Neo4J:创建带关系的节点
探究EVM全节点与存档节点的不同
基于以太坊虚拟机(EVM)的网络通常可以运行两种类型的节点:一个全节点和一个存档节点。
Tiny熊
2022/11/07
1.3K0
探究EVM全节点与存档节点的不同
img标签不同设备加载不同尺寸的图片的几种方法
一般来说,桌面端显示的是大尺寸的图像,文件体积较大。手机的屏幕较小,只需要小尺寸的图像,可以节省带宽,加速网页渲染。
javascript.shop
2019/09/04
7K0
BI工具和报表工具有什么不同
BI工具和报表工具都是现在大数据时代下用得比较多的分析工具。很多人分不清BI工具和报表工具到底有什么不同,下面,我们就从面向群体、技术架构、用途和作用效果等四个方面,详细说下它们之间有何不同。
数据前沿
2020/11/24
1.2K0
BI工具和报表工具有什么不同
LeetCode 0115. 不同的子序列[动态规划详解]
字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE" 是 "ABCDE" 的一个子序列,而 "AEC" 不是)
Yano_nankai
2021/03/21
7370
LeetCode 0115. 不同的子序列[动态规划详解]
DC电源模块具有不同的安装方式和安全规范
DC电源模块是将低压直流电转换为需要的输出电压的装置。它们广泛应用于各种领域和行业,如通信、医疗、工业、家用电器等。安装DC电源模块应严格按照相关的安全规范进行,以确保其正常运行和安全使用。
河北稳控科技
2023/09/19
2030
DC电源模块具有不同的安装方式和安全规范
统计不同回文子序列
如果有某个 i , 满足 ai != bi ,则两个序列 a1, a2, ... 和 b1, b2, ... 不同。
golangLeetcode
2022/08/03
2390
[Leetcode][python]Distinct Subsequences/不同子序列
同样你可以打印出dp看结构:上半区都为0,因为不可能,dp[0][0]为1因为空转空有一种可能(不删除)
蛮三刀酱
2019/03/26
5900
in 和 exists 的不同
in 是把外表和内表做 hash 连接,而 exists 是对外表作 loop 循环,每次 loop 循环再对内表进行查询,一直以来认为 exists 比 in 的效率高的说法是不准确的。如果两个表大小相当,则 in 和 exists 的效率是差不多的,如果两个表的一大一小,则子查询表大的用 exists,子查询表小的用 in。
zucchiniy
2019/10/30
8150
如何实现同时打印不同数量的标签
我们在使用条码打印软件打印标签的时候,一般都是每个标签打印一份或者多份,这种统一打印相同份数的情况很好设置。但是有些时候需要每种标签打印不同的份数,这种情况该如何处理,前提是需要借助一个数据库文件,下面小编会详细介绍操作过程。
神奇像素科技
2021/12/08
1.5K0
如何实现同时打印不同数量的标签
LeetCode 115. 不同的子序列(DP)
一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,“ACE” 是 “ABCDE” 的一个子序列,而 “AEC” 不是)
Michael阿明
2021/02/19
3260
3阶有向完全图的所有非同构的子图(不同钩子图个数)
子图同构问题本质上就是一种匹配,VF2算法加了很多feasibility rules,保证了算法的高效性。这里只是实现最基本的判断子图同构的算法:
全栈程序员站长
2022/07/25
1.2K0
3阶有向完全图的所有非同构的子图(不同钩子图个数)
Easyui 实现点击不同树节点打开不同tab页展示不同datagrid表数据设计
2、在上述打开页面中,进行新增,编辑,复制等操作,确保新增、复制等操作生成的数据只在该页面可见。
授客
2019/09/10
1.2K0
Easyui 实现点击不同树节点打开不同tab页展示不同datagrid表数据设计
图网络中不同相邻节点的权重学习;图上的对比学习
Node2Seq: Towards Trainable Convolutions in
Houye
2021/02/24
1.7K0
图网络中不同相邻节点的权重学习;图上的对比学习
点击加载更多

相似问题

具有相同子节点和不同节点的PropertyGrid

12

从复杂子图关系中获取不同的装饰节点

15

创建一个不同节点具有相同标签的图?

13

具有不同类型节点的图

140

具有不同色彩映射的子图

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文