我已经安装了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)
......没有骰子。它再创建两个节点,没有属性,它们之间有关系。帮助
答案 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)