2017-03-12 172 views
-1

我是Neo4J(以及一般数据库)的新手。我读过“学习Neo4J”一书,并且在创建节点方面我没有任何问题。我在创建关系方面遇到很大问题节点代表国家(仅两个)和城市(八个)。在Neo4J中创建关系

这里是我创建全国节点CREATE声明:

CREATE(SG: Country {Name:'Singapore', FullName:'Republic of 
    Singapore'}) 
CREATE(MY: Country {Name:'Malaysia', 
    FullName:'Malaysia'}) 

以下是我的CREATE语句创建城市:

CREATE(City1: City {Name:'Singapore'}) 
CREATE(City2: City {Name:'Kuala Lumpur'}) 
CREATE(City3: City {Name:'Johor Bahru'}) 
CREATE(City4: City {Name:'Malacca'}) 
CREATE(City5: City {Name:'Georgetown'}) 
CREATE(City6: City {Name:'Alor Star'}) 
CREATE(City7: City {Name:'Klang'}) 
CREATE(City8: City {Name:'Shah Alam'}) 

到目前为止好。但是,当我发出这些命令来创建关系时,它们不起作用:

CREATE(City1)-[:CITY_IN]->(SG) 
CREATE(City2)-[:CITY_IN]->(MY) 
CREATE(City3)-[:CITY_IN]->(MY) 
CREATE(City4)-[:CITY_IN]->(MY) 
CREATE(City5)-[:CITY_IN]->(MY) 
CREATE(City6)-[:CITY_IN]->(MY) 
CREATE(City7)-[:CITY_IN]->(MY) 
CREATE(City8)-[:CITY_IN]->(MY) 

我在做什么错?谢谢。

诚恳, CKLee

+0

这是值得通过Neo4j开发人员手册阅读。关于这个特定问题需要记住的关键是,用于绑定到图元素(SG,MY,City1,City2等)的变量仅在查询期间存在,并且即使可能超出范围由于WITH子句,如果没有明确包含在WITH中。它们永远不会保存到数据库中。 – InverseFalcon

回答

0

我猜你分开跑暗号,这三个区块,在浏览器/壳?

如果是这样,你已经失去了标识符代表的东西。这将工作,如果你作为一个交易运行它 -

CREATE(SG: Country {Name:'Singapore', FullName:'Republic of 
    Singapore'}) 
CREATE(MY: Country {Name:'Malaysia', 
    FullName:'Malaysia'}) 
CREATE(City1: City {Name:'Singapore'}) 
CREATE(City2: City {Name:'Kuala Lumpur'}) 
CREATE(City3: City {Name:'Johor Bahru'}) 
CREATE(City4: City {Name:'Malacca'}) 
CREATE(City5: City {Name:'Georgetown'}) 
CREATE(City6: City {Name:'Alor Star'}) 
CREATE(City7: City {Name:'Klang'}) 
CREATE(City8: City {Name:'Shah Alam'}) 
CREATE(City1)-[:CITY_IN]->(SG) 
CREATE(City2)-[:CITY_IN]->(MY) 
CREATE(City3)-[:CITY_IN]->(MY) 
CREATE(City4)-[:CITY_IN]->(MY) 
CREATE(City5)-[:CITY_IN]->(MY) 
CREATE(City6)-[:CITY_IN]->(MY) 
CREATE(City7)-[:CITY_IN]->(MY) 
CREATE(City8)-[:CITY_IN]->(MY) 
+0

亲爱的Luanne, 非常感谢!有效! – ascklee

+0

欢迎,请接受答案 – Luanne