java 迭代遍历_Gremlin迭代条件遍历

我认为你不需要所有 ifThenElse 的东西 . 假设我现在你的模型正确,我想你只需要这个:

gremlin> g = new TinkerGraph()

==>tinkergraph[vertices:0 edges:0]

gremlin> g = new TinkerGraph()

==>tinkergraph[vertices:0 edges:0]

gremlin> usa = g.addVertex([name:"USA"])

==>v[0]

gremlin> va = g.addVertex([name:"VA"])

==>v[1]

gremlin> fairfax = g.addVertex([name:"Fairfax"])

==>v[2]

gremlin> country = g.addVertex([ID:"country"])

==>v[3]

gremlin> state = g.addVertex([ID:"state"])

==>v[4]

gremlin> city = g.addVertex([ID:"city"])

==>v[5]

gremlin> g.addEdge(null, fairfax, va, "in")

==>e[6][2-in->1]

gremlin> g.addEdge(null, fairfax, city, "is-a")

==>e[7][2-is-a->5]

gremlin> g.addEdge(null, va, usa, "in")

==>e[8][1-in->0]

gremlin> g.addEdge(null, va, state, "is-a")

==>e[9][1-is-a->4]

gremlin> g.addEdge(null, fairfax, usa, "in-country")

==>e[10][2-in-country->0]

gremlin> g.addEdge(null, usa, country, "is-a")

==>e[11][0-is-a->3]

gremlin> fairfax.as('x').out('in','in-country').loop('x'){it.loops<10 && it.object.out('is-a').ID.next()!='country'}.dedup.name

==>USA

挑选最后一行,你可以使用"in"或"in-country"标签从"city"(即费尔法克斯)走出去 . 显然,如果我完成了'm lucky I get to traverse on 805177 and I' . 然后我循环回 x 占位符,这样做的同时我仍然有少于10个循环而当前顶点我是一个国家 - 否则我突然离开循环因为我已到达我要发出的国家顶点 . 我 dedup 因为您的架构允许多种方式到达给定"in-country"和"in"的国家/地区 . 根据您的数据集,您可能还需要一些错误处理或其他内容,但我认为这应该会激发您提出最终解决方案 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值