当前位置: 首页 > 知识库问答 >
问题:

Cypher查询创建新节点,而不是与现有节点建立关系

贝钧
2023-03-14

我当前有一个查询,用于在Men节点和People节点之间建立关系:

MATCH (m:Mem)
UNWIND m.personID as person
MERGE (p:Person{personID:person})
MERGE (m)-[:WITH]->(p)

Mem节点包含一个personid数组,我正在展开该数组,然后将其与personid节点对应。但是,查询正在与它创建的新Person节点建立关系,只使用相应的PersonId属性(而不使用其他属性),而不是与具有相应PersonId的现有Person节点建立关系。

即使我对带有Person标签的节点的personID属性有一个唯一的约束,也会发生这种情况。

如何编写一个建立关系但不创建具有相应个人ID的新节点的查询?

共有1个答案

魏旭
2023-03-14

由于现有节点将personID存储为整数,因此需要通过TOINTEGER()函数将person字符串值转换为整数:

MATCH (m:Mem)
UNWIND m.personID as person
MERGE (p:Person {personID: TOINTEGER(person)})
MERGE (m)-[:WITH]->(p)
 类似资料:
  • 我需要创建一个新的A类节点,它与User节点有关系: 现在,假设我们有新节点A的以下数据: 我试图创建节点A,使新节点A与具有“id”:4和“nodeId”:“0002-0002”(唯一节点标识符)的用户的(现有)节点之间具有关系,但用户节点将字段“name”和“firstName”更新为。 我正在使用GraphRespository代理创建它: 有没有办法不进行此更新,只与用户节点建立关系?

  • “email”节点以前是从另一个“people.csv”文件创建的,并且“email”节点存在唯一性约束。在上面的行中,我希望通过关系将“created_by”、“delivered_to”和“delivered_by”节点与之前创建的“email”节点合并。当我运行代码时,它给出了错误,并且没有从CSV中创建any节点。如何组织密码查询以防止此错误?谢了。

  • 我有一个修改密码查询的性能问题。给定是一个源节点,它与子节点有大量的传出关系。这些子节点都有一个键属性。现在的目标是在原点和子节点之间创建新节点,以便将共享相同密钥属性值的所有子节点分组。这个想法的情节可以在neo4j控制台上找到:http://console.neo4j.org/?id=vinntj 我将查询与sping-data-neo4j 2.2.2一起使用。RELEASE和neo4j 1.

  • 我第一次试用Neo4j。我正在使用2.0-RC1社区版。 我已经创建了一些节点: 现在我想在节点之间添加关系。但是,我不想清除使用上面的脚本创建的现有数据库,添加语句并再次运行它。我想向现有节点添加关系。谷歌帮我找到了这个: 这工作得很好(尽管我不理解所有的语法)。但是,我知道这将查找具有用户名属性的任何节点和具有名称属性的任何节点,而不是使用标签来检查它是否具有正确类型的节点。 如何使用标签进行

  • 我有以下课程: 我正在尝试实现一种方法: 这将检查是否是的祖先(任何深度,直到根)。 我需要一个密码查询。

  • 我正在处理一个Spring BootNeo4j应用程序 在保存新密码之前,如何编写自定义密码来检查Priviledge是否存在 UserRole域:@NodeEntity公共类UserRole{ 特权域: