匹配密码中的两个节点和它们之间的关系

Match two nodes in cypher and and a relation between them

入门级问题。我正在试用 Desktop Neo4j v4.3.1。到目前为止,我已经创建了

的节点

CREATE (n:CST {cst_id:'CST_ID_1'}) RETURN n

CREATE (n:CST {csT_id:'CST_ID_2'}) RETURN n

CREATE (n:CST {csT_id:'CST_ID_3'}) RETURN n

据称代表两个客户。 .我想做的是

  1. 匹配并return前两个节点
  2. 在前两个节点之间添加一条边

到目前为止,我已经试过了

MATCH (c:CST),(d:CST)
WHERE c.cst_id='CST_ID_1' AND d.cst_id='CST_ID_2'
RETURN c,d

return什么都没有。将 AND 更改为 OR 会导致 returning 所有三个节点。

首先我想指出你的 cst_id 是不同的。第一个节点有 cst_id,第二个和第三个节点有 csT_id(注意大写 T)。我不确定这是否是故意的,但我会在示例中保持不变:

MATCH (a:CST {cst_id: "CST_ID_1"})
MATCH (b:CST {cst_id: "CST_ID_2"})
CREATE (a)-[:MY_EDGE_NAME]->(b)

上面我执行了两个匹配,然后在两个匹配的节点之间创建了一条边,称为 MY_EDGE_NAME。如果 CST_ID_1CST_ID_2 不匹配,则不会创建关系。