在Neo4j中建立节点之间的关系

时间:2013-07-31 07:23:03

标签: neo4j

我是Neo4j的新手。我有客户和产品数据到Neo4j。在加载时我还没有建立任何关系。现在我想在它们之间建立关系,如:

create (Customer1)-[:bought]->(Item1),(Customer1)-[:bought]->(Item2);

执行此语句后,它表示已建立关系,但是当我尝试访问它时:

start n=node(*) match (n)-[:bought]->(items) where n.NodeName! = "Customer1" return items;

它说0行。我认为如果成功建立关系,它应该给我2个项目,Item1&项目2。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

显然,您没有在创建查询中为NodeName节点设置Customer1。尝试像这样修改它:

create (Customer1 { NodeName:'Customer1' }), (Item1 { NodeName:'Item1' }), (Item2 { NodeName:'Item2' }), (Customer1)-[:bought]->(Item1), (Customer1)-[:bought]->(Item2);

然后你的第二个查询应该按预期返回2行。

<强>更新 好的,我没有正确理解这个问题。因此,您希望在现有节点之间建立关系。然后试试这个:

start Customer1=node:node_auto_index(NodeName='Customer1'), Item1=node:node_auto_index(NodeName='Item1'), Item2=node:node_auto_index(NodeName='Item2')
create (Customer1)-[:bought]->(Item1),(Customer1)-[:bought]->(Item2);