在具有值为1和1.0的共享属性的节点之间的Cypher中创建关系

时间:2019-05-03 15:00:31

标签: neo4j cypher

我对两种不同的节点类型具有属性。该属性是1和1.0。我想将这些节点与基于此共享属性的关系连接起来。大约有4500万个节点可以连接到另外120万个节点。我生成了以下查询来执行此操作,但它始终返回(no changes, no records)。有人知道这样做的最佳方法吗?查询如下。

MATCH(p:Post),(t:Thread) 存在(p.post_reply_number)和存在(t.pos)和p.post_reply_number = t.pos的地方(p)-[r:FIRST_POST]->(t)

1 个答案:

答案 0 :(得分:0)

我猜数据类型不一致。其中一个属性是字符串,另一个属性是double(float)。您可以使用toFloat函数将字符串转换为float,然后查询即可工作。

MATCH (p:Post),(t:Thread) 
WHERE EXISTS (p.post_reply_number) 
 AND EXISTS (t.pos) 
 AND toFloat(p.post_reply_number)=t.pos 
CREATE (p)-[r:FIRST_POST]->(t)

我尝试使用数据类型int(post_reply_number)和float(pos)创建示例节点/属性,并且您的查询有效。