1

我的节点结构是这样的:

==> | Node[613]{name:"The Bigos",fs_id:"51a8e1a12fc6e7ef6d121077"}                                            
==> | Node[614]{name:"Maceraperest",fs_id:"51bafb3d498ed54bd4c7fa8c"}                                         
==> | Node[616]{name:"Viking",fs_id:"51bafe1de4b090ea9dceb20e"}                                               
==> | Node[618]{name:"Metro Gross Market",fs_id:"51bb426c498e47af428ca013"}

当我尝试再次创建这些节点时,我编写的一个 php 脚本会检查 fs_id 以确定该节点是否已经存在。如果它存在,它会将节点返回给我,并且不会创建新节点。

现在的问题是,即使它没有创建新节点,控制台也会向我显示它确实创建了。

==> | Node[613]{name:"The Bigos",fs_id:"51a8e1a12fc6e7ef6d121077"}                                            
==> | Node[613]{name:"The Bigos",fs_id:"51a8e1a12fc6e7ef6d121077"}                                            
==> | Node[613]{name:"The Bigos",fs_id:"51a8e1a12fc6e7ef6d121077"}                                            
==> | Node[614]{name:"Maceraperest",fs_id:"51bafb3d498ed54bd4c7fa8c"}                                         
==> | Node[614]{name:"Maceraperest",fs_id:"51bafb3d498ed54bd4c7fa8c"}                                         
==> | Node[614]{name:"Maceraperest",fs_id:"51bafb3d498ed54bd4c7fa8c"}                                         
==> | Node[616]{name:"Viking",fs_id:"51bafe1de4b090ea9dceb20e"}                                               
==> | Node[616]{name:"Viking",fs_id:"51bafe1de4b090ea9dceb20e"}                                               
==> | Node[616]{name:"Viking",fs_id:"51bafe1de4b090ea9dceb20e"}                                               
==> | Node[618]{name:"Metro Gross Market",fs_id:"51bb426c498e47af428ca013"}                                   
==> | Node[618]{name:"Metro Gross Market",fs_id:"51bb426c498e47af428ca013"}                                   
==> | Node[618]{name:"Metro Gross Market",fs_id:"51bb426c498e47af428ca013"}

查看节点 ID,它们是相同的!如果我在数据浏览器中探索节点 618,它会返回一个节点。还有查询

start n=node(618) return n;

也返回单行。但是下面的查询返回多行相同的节点 id 并且当我测试上述节点是否存在时行数正在增加。

start n=node(331) match n-[:BEEN]->(venues) return venues order by id(venues);

可能没什么,但我很好奇 Neo4j 是否为此消耗了额外的内存,或者它只是类似于缓存系统。

4

1 回答 1

2

您可能只有多个BEEN关系,然后每个关系都会产生另一个结果行。

如果每个场地只有一排,请执行以下操作:

start n=node(331) 
match n-[:BEEN]->(venues) 
return distinct venues;

要查看不同的关系,请使用:

start n=node(331) 
match n-[rel:BEEN]->(venues) 
return venues,collect(rel);
于 2013-08-28T07:27:07.913 回答