我的节点结构是这样的:
==> | 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 是否为此消耗了额外的内存,或者它只是类似于缓存系统。