我有一个代表、People、、由关系连接的节点网络(、Email、)。
电子邮件的接收者是m.slug
根据:()-r-(m)
我希望拆分该属性(在本例中为“发件人”/ m.slug ie Larry@google.com),并将一个新节点"Google.com“创建为Company (也就是说,我现在有一组根据现有信息创建的公司节点)。
然后我想链接谷歌(公司)到我的个人节点(Larry@Google.com)。
--
在不创建多个重复的公司节点的情况下,您将如何处理此问题?(即Sergey@Google.com和Larry@Google.com应该连接到同一个Google.com公司节点)。
发布于 2017-06-04 18:08:33
这就是如何确保每个电子邮件地址域名都有一个唯一的Company节点,并将其(通过AT关系)与每个Person与该域中的电子邮件地址相关联。域名在存储之前是小写的,以确保唯一性,因为电子邮件地址经常带有不同的大小写。
MATCH (n:Person)
MERGE (c:Company {name: TOLOWER(SPLIT(n.slug, '@')[1])})
CREATE (n)-[:AT]->(c);注意:上面的查询应该只执行一次,因为CREATE子句每次都会创建关系,即使它已经存在。如果需要多次运行查询,可以将CREATE替换为MERGE。
https://stackoverflow.com/questions/44357079
复制相似问题