TinkerPop Gremlin 重复直到具有指定标签的节点
TinkerPop Gremlin Repeat until nodes with specified label
在我的图表中有两种类型的标签:a
和 b
以及 boolean
属性 travel_by
.
我想执行 BFS(最大深度为 5):从给定节点开始并获取所有带有标签 a
的第一个节点。
我试过这样做:
g.V(<node_to_start_from>).repeat(__.both().has("travel_by", True).simplePath())
.times(5)
.until(__.hasLabel('a')).toList()
但是这个查询卡住了很长时间(即使我改成times(2)
)
一个常用的方法是使用 loops
g.V(<node_to_start_from>).
repeat(__.both().has("travel_by", True).simplePath()).
until(__.hasLabel('a').or().loops().is(5)).
hasLabel('a').
toList()
在 loops
达到 5 的情况下,第二个 has
防止除标签为 'a' 的项目以外的任何项目成为结果的一部分。
在我的图表中有两种类型的标签:a
和 b
以及 boolean
属性 travel_by
.
我想执行 BFS(最大深度为 5):从给定节点开始并获取所有带有标签 a
的第一个节点。
我试过这样做:
g.V(<node_to_start_from>).repeat(__.both().has("travel_by", True).simplePath())
.times(5)
.until(__.hasLabel('a')).toList()
但是这个查询卡住了很长时间(即使我改成times(2)
)
一个常用的方法是使用 loops
g.V(<node_to_start_from>).
repeat(__.both().has("travel_by", True).simplePath()).
until(__.hasLabel('a').or().loops().is(5)).
hasLabel('a').
toList()
在 loops
达到 5 的情况下,第二个 has
防止除标签为 'a' 的项目以外的任何项目成为结果的一部分。