当前位置: 首页 > 知识库问答 >
问题:

在遍历过程中选择2条可用边

戈巴英
2023-03-14

我对Gremlin还比较陌生,我所在的公司正在寻求实现一个带有一些临时边缘的图形数据库。每个顶点可以有一条或多条边,每条边上都有一个本质上是即时真/假的属性。

当遍历图时,如果“isTemporary”=true,我们应该遵循该边,否则我们应该遵循“isTemporary”=false的边。

即。,

A-[istemporaty:true,值1]-

A-[i临时:false,值2]-

B-[isTem临时:假,值3]-

运行单个gremlin查询应返回一个-

我已经阅读了TinkerPop3文档,看起来“choose”可能是我在这里想要使用的,但是所有的示例似乎都返回了一个值,当我想要返回遍历时,我可以重复执行遍历。

任何帮助都将不胜感激。


共有1个答案

司空修贤
2023-03-14
匿名用户

您可能正在寻找合并步骤。

考虑到这张图:

g.addV().as('a').property('name', 'A').
  addV().as('b').property('name', 'B').
  addV().as('c').property('name', 'C').
  addV().as('d').property('name', 'D').
  addE('someLink').from('a').to('b').
    property('isTemporary', true).property('value', 1).
  addE('someLink').from('a').to('c').
    property('isTemporary', false).property('value', 2).
  addE('someLink').from('b').to('d').
    property('isTemporary', false).property('value', 3)

以下查询将返回从A到D的所有路径,如果存在,则尝试通过isTemporary:true边进行遍历,否则尝试通过isTemporary:false边进行遍历(合并步骤)。

g.V().has('name', 'A').
  repeat(
    coalesce(
      outE().has('isTemporary', true).inV(),
      outE().has('isTemporary', false).inV()
    )
  ).
  until(has('name', 'D')).
  path().by('name')

结果:

==>[A,B,D]

 类似资料:
  • 问题内容: 我将如何存储select语句的结果,以便可以将结果与子句重用于其他查询?这是一些伪代码: …或者如果我只是将子查询放在两个select语句中,优化器是否会为我执行此操作? 编辑:这是有关我的表结构的更多信息。 基本上,table1是一个标准表,其id是主键。而table2具有3列主键,其中id是这些列之一。在我的情况下,table2中的ID将显示在三行中。 问题答案: 您可以使用SQL

  • 问题内容: 我想遍历JSON文件的内容并将其打印到控制台。 我想我确实把清单混在一起了。 这就是我试图获取所有元素的方法 这是我的JSON(简体:) (可在此处找到完整的JSON输出:Link) 当然,我得到一个错误,我应该在[]中使用整数输入,而不是字符串,但是我不知道该怎么做。 这是: 我怎么了? 问题答案: 实际上,要查询,只需将其添加到最后一行的括号中即可。除此之外,它似乎可以在命令行上的

  • 有一个可选的可选列表,比如: 如何遍历打印字符串的和? 有一个可选的可选流怎么样? 更新:感谢您的答案,optionalStream(非嵌套)的解决方案:

  • 问题内容: 我从网址获取此json,返回的JSON为: 我想在IOS的TableView中显示名称。 我的Swift2代码是: 如何遍历JSON数组以在表视图的单元格中放置哪个名称? 问题答案: 该变量是一个字典数组,因此您可以使用 在 Swift 3中 ,未指定的JSON类型已更改为

  • `@实体公共类影片{ }' 公开课课时{ } 我有两张桌子 表A Id | name | date | Set 表B Id |日期|表A 我想选择TableB. date所在的所有tableA 我想从表格A,表格B中选择*表格B。日期 我想要一个TableA元素列表和一个TableB的少数元素列表 在此输入图像描述 在此输入图像描述

  • 问题内容: 我需要遍历不知道其参数化类型的映射的条目集。 遍历此类入口集时,为什么不编译呢? 但这编译: 并且也可以编译(由于我不知道地图的类型,所以我不能使用它): 问题答案: 您在第一个错误中遇到的错误是: 这是因为编译器会转换FOR-IN循环: 至: 您的第二个示例有效, 但只能通过作弊! 您正在进行未经检查的演员表转换,以 恢复 到。 成为: 更新资料 如注释中所述,在两个示例中,类型信息