我是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。
有什么想法吗?
答案 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);