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

Neo4J在Cypher中创建关系返回无更改,无行

陶宜民
2023-03-14

我有一个CSV数据集,我试图通过它在数据库中已经存在的两个节点类型(commentperson)之间建立关系。

这是数据库信息-

问题是--无论我尝试哪个密码查询,它们都返回相同的东西--“无更改,无行”。

// comment_hasCreator_person_0_0.csv
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "https://dl.dropbox.com/s/qb4occggixmaz9g/comment_hasCreator_person_0_0.csv" AS line
MATCH (comment:Comment { id: toInt(line.Comment.id)}),(person:Person { id: toInt(line.Person.id)})
CREATE (comment)-[:hasCreator]->(person)
// comment_hasCreator_person_0_0.csv
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "https://dl.dropbox.com/s/qb4occggixmaz9g/comment_hasCreator_person_0_0.csv" AS line
MATCH (comment:Comment { id: toInt(line.Commentid)}),(person:Person { id: toInt(line.Personid)})
CREATE (comment)-[:hasCreator]->(person)
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "https://www.dropbox.com/s/qb4occggixmaz9g/comment_hasCreator_person_0_0.csv?dl=0" AS line
MATCH (comment:Comment { id: toInt(line.Commentid)}),(person:Person { id: toInt(line.Personid)})
MERGE (comment)-[r:hasCreator]->(person)
RETURN comment,r, person 

此查询只返回“no rows”。

我还尝试了该查询的一个变体,其中我没有使用toint()函数,但这并没有什么不同。

为了确保节点存在,我从CSV文件中选择了随机单元格值,并使用match子句来确保数据库中存在相应的commentperson节点,并且找到了所有节点。

MATCH (c:Comment{id:1236950581249}), (p:Person{id:10995116284808})
CREATE (c)-[r:hasCreator]->(p)
RETURN c,r,p

共有1个答案

仲孙磊
2023-03-14

您在您的CSV文件中有一个问题。其中使用的字段结束符是“”,而不是默认的“,”。您可以编辑CSV文件并将字段结束符字符切成“,”,或者使用加载CSV中可用的选项FIELDTERMINATOR。

尝试将查询编辑为以下内容:

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "https://www.dropbox.com/s/qb4occggixmaz9g/comment_hasCreator_person_0_0.csv?dl=0" AS line
FIELDTERMINATOR '|'
MATCH (comment:Comment { id: toInt(line.Commentid)}),(person:Person { id: toInt(line.Personid)})
MERGE (comment)-[r:hasCreator]->(person)
RETURN comment,r, person 
 类似资料:
  • 使用neo4j 1.9。2,我试图在我的图中找到所有与另一个节点有一对一关系的节点。假设我的图表中有人,我想找到所有人,他们只有一个朋友(自2013年以来),而这一个朋友只有另一个人作为朋友,没有其他人。作为回报,我希望有所有这些“孤立”的朋友对。 我尝试了以下方法: 但是这个查询并不是它应该做什么——它只是不返回任何内容。 注:两人之间只有一种关系。因此,一个朋友有一个新的关系,另一个是一个外向

  • 我试图在Neo4j中插入两个节点之间的关系。我正在使用Neo4J(2.1.8社区) 我正在使用尝试创建员工经理关系。此关系实体是报表。(两个类都在下面给出) 但当我试图挽救这段感情的时候 我得到了例外作为 线程“main”组织中出现异常。springframework。刀。DataRetrievalFailureException:关系[0]没有propertyKey=“type”的属性。;嵌套的

  • 我是Neo4j和Cypher的新手,刚刚导入了两个CSV--一个是地点列表,另一个是人员列表。 每个地方都有多个访问过它的人的peopleIDs,存储为数组中的整数。 类似地,每个人都有多个他们访问过的地方的Placeid,这些地方存储在一个数组中。

  • 我使用Spring数据Neo4J来定义不同人员之间的无向关系。下面提供了一个示例实体类。 如上所述,一个人有一个类型为“人”的朋友列表。该关系保持无方向,以确保如果一个人A是“Friend_With”的人B,那么人B也是“Friend_With”的人A。 下面提供了添加好友的代码 我已经添加了PersonB作为PersonA的朋友,所以理想情况下,这应该意味着 因为关系是无方向的 但当我在询问,在

  • 我有一个Orders表,其中的< code>resellerID列是一个可空整数。在大多数记录中,< code>resellerID为NULL,但有时它包含一个与Resellers表相关联的整数,该表包含< code>resellerID和< code>resellerName列。 当我尝试添加两个之间的关系时,我收到以下错误: 问题是<code>Orders的可为Null性质吗。经销商ID列?这

  • 下面是我的上下文的概念示例: 我有一个抽象类,名为:(包含一个属性为String) 我有一个子类,名为: 我有一个子类,名为: 使用Spring-Data-Neo4j,我将a。 我创建了一个测试类,以便在图中插入一个和一个<整口井都发生了= 现在,我想进行这种密码查询: 检索id=123的用户 因此,我必须找到更有效的方法来检查所有用户节点(FacebookUser和TwitterUser的联合)