Neo4j关系没有出现

时间:2014-01-13 20:44:35

标签: neo4j

我已经安装了Neo4j社区版本2,并且遇到了一些链接节点的问题。鉴于以下内容:

CREATE (Hucksted_Gerald:contributor {name:'Hucksted_Gerald', type:'Individual'})
CREATE (contributionID207:contribution {amount:200.00})
CREATE (L4N7G2:PostalCode {name:'L4N7G2'})
CREATE (C_Gold_Mitch:Candidate {name: 'Gold_Mitch'})

这很好用,我刚创建了四个节点。我原以为这会起作用。相反,它会创建四个没有属性的新节点,原来的四个节点仍然没有附加关系。

CREATE (L4N7G2)<-[:LIVES]-(Hucksted_Gerald)-[:CONTRIBUTED]->(contributionID207)-[:RECEIVED]->(C_Gold_Mitch)

有没有人有任何想法?我尝试将关系分开,例如只需使用以下内容:

CREATE (L4N7G2)<-[:LIVES]-(Hucksted_Gerald)

......没有骰子。它再创建两个节点,没有属性,它们之间有关系。帮助

1 个答案:

答案 0 :(得分:1)

我相信你必须分一步完成这些:

CREATE (Hucksted_Gerald:contributor {name:'Hucksted_Gerald', type:'Individual'})
CREATE (contributionID207:contribution {amount:200.00})
CREATE (L4N7G2:PostalCode {name:'L4N7G2'})
CREATE (C_Gold_Mitch:Candidate {name: 'Gold_Mitch'})
CREATE (L4N7G2)<-[:LIVES]-(Hucksted_Gerald)-[:CONTRIBUTED]->(contributionID207)-[:RECEIVED]->(C_Gold_Mitch)

在原始请求中,您正在创建这些节点。在第二个请求中,您引用了先前创建的节点,但控制台没有内存,因此它假设您要创建没有属性的节点。

Neo4j没有“命名”节点的概念,只有标签和属性,所以你在一个查询中根据变量命名所做的不会转移到另一个查询。

如果您执行MATCH而不是创建,则可以使第二个查询有效。

//编辑:

您可以使用CREATE替换第一个查询中的MATCH,并附加第二个查询以执行此操作。

MATCH (Hucksted_Gerald:contributor {name:'Hucksted_Gerald', type:'Individual'})
MATCH (contributionID207:contribution {amount:200.00})
MATCH (L4N7G2:PostalCode {name:'L4N7G2'})
MATCH (C_Gold_Mitch:Candidate {name: 'Gold_Mitch'})
CREATE (L4N7G2)<-[:LIVES]-(Hucksted_Gerald)-[:CONTRIBUTED]->(contributionID207)-[:RECEIVED]->(C_Gold_Mitch)