0

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

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

在我执行此语句后,它说关系已建立,但当我尝试访问它时,如下所示:

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

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

任何想法?

4

1 回答 1

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);
于 2013-07-31T09:07:12.057 回答