首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以使用关系属性值的一部分来查询neo4j中的图?

是否可以使用关系属性值的一部分来查询neo4j中的图?
EN

Stack Overflow用户
提问于 2015-06-29 17:16:23
回答 2查看 33关注 0票数 1

我正在尝试将数据流的信息转移到DB中。数据流如下所示:

E_App1向I_App1发送数据。然后,I_App1将这些数据发送给I_App3。然后,I_App3将这些数据发送给I_App5。E_App2向I_App2发送数据。然后,I_App2将这些数据发送给I_App3。然后,I_App3将这些数据发送给I_App5。E_App3向I_App2发送数据。然后,I_App2将这些数据发送给I_App4。然后,I_App4将这些数据发送给I_App5。然后,I_App5将这些数据发送给I_App6。E_App4向I_App3发送数据。然后,I_App3将这些数据发送给I_App5。然后,I_App5将这些数据发送给I_App6。E_App5向I_App2发送数据。然后,I_App2将这些数据发送给I_App4。然后,I_App4将这些数据发送给I_App5。

我正在考虑使用“发送数据”关系中的一个名为" of“的属性,该属性将包含正在发送的数据的名称,以便跟踪特定应用程序的流程。下图线上的一些东西。是否可以查询OF值,例如“显示其值仅包含E_App4的所有关系”?

这是我第一次尝试Graph,我正在考虑使用它,因为关系是复杂的。我不是来找高性能的。为了能够跟踪特定应用程序的流程,我还需要遵循其他方法吗?

指向图表的链接:Modeling.jpg

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-29 17:24:50

您的关系图有点复杂,但您所要求的只是查找那些类型为OF的关系,并将节点类型为E_App4作为结束节点。开始节点上没有restricion。

因此,这个查询应该可以工作:

代码语言:javascript
运行
复制
match (startNode) -[of:OF]->(endNode:E_App4) return startNode, of, endNode;

当然,这假定如下:

  1. 关系将从开始节点定向到结束节点。因此,E_App4作为开始节点的任何关系都不会被计算在内。如果希望计算这些值,请移除->并将其替换为-
  2. 开始节点可以是任何内容。
  3. 只考虑了OF类型的关系。请注意,这个名字区分大小写。必须用OF标记关系。
  4. 终端节点必须标记为E_App4

编辑

再读一遍你的问题,show all relations whose OF value contains E_App4 only,我想我误解了你。你在问你能不能检查一下这段关系的价值。是的你可以。以下是查询:

代码语言:javascript
运行
复制
match (startNode) -[of:OF]->(endNode) where has(of.property) and of.property = "E_App4" return of;

这假定:

  1. 关系中定义的属性具有键property
  2. 这将只检查拥有密钥property的关系。如果你们的关系没有这把钥匙,那么这些关系就不会被计算在内。
票数 1
EN

Stack Overflow用户

发布于 2015-09-03 06:52:16

谢谢拉什,这对我有帮助。我被困在定义过滤器,但一些搜索帮助我找到了如何使用*。这是给像我这样可能被困住的人:

图就像这样,有很多节点,并且混淆了与数据属性的关系,只包含标识信息。

代码语言:javascript
运行
复制
z-[send]->b
y-[send]->b
w-[send]->d
x-[send]->c
q-[send]->c
b-[send]->c-[send]->e
also c-[send]->d

每个关系的数据属性都有它所携带的源。因此,远距离的关系将在"send“关系的"Data”属性中以数据的方式定义许多源:“ABC、XYZ、QWR、SDF、TYOP、Zxcvb”。

代码语言:javascript
运行
复制
//to know which all send relations have ABC part of Data property
MATCH ()-[r:send]->() WHERE r.Data =~ ".*ABC.*" RETURN r
//to know which all send relations have TYOP part of Data property
MATCH ()-[r:send]->() WHERE r.Data =~ ".*TYOP.*" RETURN r

我希望这能帮助那些还在参与这一切的人。

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

https://stackoverflow.com/questions/31121701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档