我的节点结构如下:
==> | 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以某种方式为此做了额外的记忆,或者它只是像缓存系统那样。
答案 0 :(得分: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);