我想模拟图中的某些数据库关系。下面是从我的原型样品图表:查找包含节点的所有关系的路径
蓝节点表示的对象。绿色节点表示对象之间的关系或联接。
如果你需要去反对4,你需要从两个物体1和3
我试图从物体1-3查询路径与价值观的加盟:
match(one:Object {Name: "1"}),
(three:Object {Name: "2"}),
p = (one)-[RELATES*]-(three)
RETURN p
这让我有两条路径,一条是(1)-[a]-(2)-[b]-(3)
,另一条是(1)-[c]-(3)
。后者是无效的,因为图中所有“相关”的边都不在路径中。有没有办法相应地过滤p?
或者,有没有更好的方法来建模关系?我可以将a-> 1,b-> 2,c-> 3,& c-1的边缘表示为FROM
,a-> 2,b-> 3和c-> 4作为TO.
“后者无效,因为图中所有'相关'边都不在路径中。” - 你的意思是说,一条路径应该包括从绿色节点开始的所有“关联”边缘?例如,'(1) - [c] - (3)'是无效的,因为它不包含'4'? –
是的,这就是我的意思。有些情况下需要2个或更多的对象来查找另一个对象。这是一个例子,其中“c”关系节点用于获取对象4,这需要一个已经具有1和3的路径。希望这是有道理的。我最初试图用对象节点之间的边(仅限于绿色节点)对此进行建模,但我不明白它如何适应这种情况。 – user2480485