Gremlin 查询 cosmosDB 寻找连接
Gremlin query cosmosDB to find a connection
我有一个以这种方式建模的图表。 A
--calls('for', 'Item1')
--> B
--calls('for', 'Item1')
--> C
--calls('for', 'Item1')
--> D
.
A
为 Item1
(边缘的 属性)调用 B
。 B
calls
C
和 C
calls
D
。图中也可以有其他链,它们会有一些顶点调用 D
for Item1
。我怎样才能确定所有这样的连锁店? D
的所有调用方式都可以为Item1
调用。
如果问题太基础,我们深表歉意。我对图形的了解非常少,我正在使用 cosmosDB 对其进行建模。
我想我会从 "D" 开始,然后使用 repeat()
从那里沿着 "Item1" 条路径前进。假设 "D" 是实际的 T.id
(元素标识符):
g.V("D").repeat(inE('calls').has('for','Item1').outV()).emit().path()
以上就是这样一个查询的开始。如果您的图形包含这样的东西,您可能需要该 repeat()
循环的终止条件和避免循环的方法(即 simplePath()
),以避免沿着这些路径无限遍历。
我有一个以这种方式建模的图表。 A
--calls('for', 'Item1')
--> B
--calls('for', 'Item1')
--> C
--calls('for', 'Item1')
--> D
.
A
为 Item1
(边缘的 属性)调用 B
。 B
calls
C
和 C
calls
D
。图中也可以有其他链,它们会有一些顶点调用 D
for Item1
。我怎样才能确定所有这样的连锁店? D
的所有调用方式都可以为Item1
调用。
如果问题太基础,我们深表歉意。我对图形的了解非常少,我正在使用 cosmosDB 对其进行建模。
我想我会从 "D" 开始,然后使用 repeat()
从那里沿着 "Item1" 条路径前进。假设 "D" 是实际的 T.id
(元素标识符):
g.V("D").repeat(inE('calls').has('for','Item1').outV()).emit().path()
以上就是这样一个查询的开始。如果您的图形包含这样的东西,您可能需要该 repeat()
循环的终止条件和避免循环的方法(即 simplePath()
),以避免沿着这些路径无限遍历。