微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将多个节点合二为一并将所有关系映射到该节点 neo4j

如何解决将多个节点合二为一并将所有关系映射到该节点 neo4j

我有一个商家名称相同的卖家节点和买家节点。

当我尝试使用代码进行匹配时:

MATCH (p:Sellers)-[rel:sells]->(o:Buyers)

RETURN p,rel,o; 

它返回图形:

01AAAC is present twice(As a seller and a buyer) in this graph

和数据:

p,o

{"Seller":01AAAC}","{""invoices":5}","{"Buyer":03AAAG}

{"Seller":01AAXP}","{"invoices":8}","{"Buyer":01AAAC}

{"Seller":27AAFF}","{"invoices":2}","{"Buyer":01AAAC}

但我正在尝试创建一个像这样的图表:

01AAAC is present only once in this graph

您能否帮助我使用适当的密码查询来创建上述可视化。 非常感谢。

解决方法

我对此进行了更多思考,理想情况下,您的模型不会区分 :Buyer 和 :Seller 节点,您只有一个节点标签,例如 :Entity 出售给具有相同标签的另一个节点.

Single node type Entity

然而,我们生活在现实世界中,您可能需要将节点标记为 :Buyer 和 :Seller,在这种情况下,您唯一的选择是将 :Seller 标签添加到任何出售的 :Buyers 和 :Buyer标签到任何:购买的卖家。这意味着您最终会得到一些具有两个标签的节点,一个用于它们可能处于的每个状态,但它使您能够可视化您想要的内容: Node with two labels

如您所见,突出显示的节点有两个标签。

不幸的是,您将无法从您拥有的模型生成此表示,因为您的 :Buyer 节点 01AAAC 与 :Seller 01AAAC 是一个完全不同的节点,并且它们之间没有共享关系。

,

如果您从节点中删除标签约束,您应该获得所有节点以及任何两个具有销售关系的节点之间的关系

MATCH (a)-[:sells]-(b)
return *

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。