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

Gremlin-顶点和边在1次遍历中向上插入

籍英叡
2023-03-14

我有一个顶点上插工作和一个边缘上插工作在2个单独的遍历中。是否可以将2合并为1遍历?我尝试过,但收到错误。

a=自身g.V()。has('account',id',account-111111111').fold().coalesce(.unfold(),.addV('account').property(T.id,'account-111111111'))。has('customer','id',cust-111111111')。as_('v')。v()。has('account',id',account-111111111')。coalesce(.inE('owns')。其中(.outV()。as_v('v'),.addE('owns')。from_v('customer',id',cust-111111111'))

a、 下一个()

作品:

顶点向上插入:

a=g.V()。has('account',id',account-111111111').fold().coalesce(.unfold(),.addV('account').property(T.id,'account-111111111'))a.next()

边缘向上插入:

a=g.V()。has('customer','id',cust-111111111')。as_('v')。v()。有('account','id',account-111111111)。\合并(.inE('owns')。其中,.outV().as_v('v'),.addE('owns')。from_v(.v('customer',id',cust-111111111]))

a、 下一个()

共有1个答案

茹高义
2023-03-14

在研究了一段时间后,您的示例中有很多事情是行不通的。

首先,如果您知道顶点或边的ID,则实际上不需要检查标签或任何其他属性。

其次T. id是一个ID。值“id”将是一个名为“id”的属性。

从你的问题来看,把你想做的事情拼凑起来有点困难,但我想这是你打算做的第一步。如果这实际上不是你想要的,请编辑问题以使其更清楚。无论如何,我希望这有帮助

g.V('account-111111111').
  fold().
  coalesce(__.unfold(),
           __.addV('account').property(T.id, 'account-111111111')).
  coalesce(__.in('owns').hasId('cust-111111111')),
           __.addE('owns').from_(__.V('cust-111111111')) 
 类似资料:
  • 我花了几个小时试图写一个小精灵语句来处理在它们之间插入两个顶点和一条边,但运气不太好。 在伪gremlin中,我想做的事情非常简单,如下所示: 此代码的问题是每个步骤,作为屏障步骤“删除”前面步骤的值。 有没有办法在一个声明中正确地做到这一点? 感谢开尔文的回答,这里是解决方案:)

  • 我有一个具有两个顶点的简单图,ID为“a”和“b”。 我已将标签为“foo”的边从“a”分配给“b” 小妖精 == == 小妖精 == 我的问题是:如何沿同一条边向后移动?例如,如果一个查询遍历到一个出站顶点,那么该查询如何穿越同一条边返回到入站顶点? 我的查询如下: g、 E('04b4b9fd-2f20-751d-5673-5aa9d7ce0285').outV()。作为('outV')…[要

  • 我有以下图表 如果我写一个查询g.V('a')。Out(),我如何才能得到被遍历的边和在traveral中遇到的顶点的值?

  • 我有图表(见下图)。我使用A中的gremlin,需要沿着边缘“impacts”和“Similato”循环所有树。 所以我需要这样的东西: 此查询的问题是,关系“相似”有时可能是边缘外,有时可能是边缘内(见图),这取决于应用程序当前存储数据的方式。我不能简单地使用“两者”(g. v(A. id).都('影响','相似')...)来检索边,因为另一方面,我只需要“影响”关系的边缘。也有可能,某些顶点缺

  • 编辑:在@Prashant回答后,我明白我的输出顺序需要保留,因此我相应地编辑了我的原始问题并重新发布。 我想从根节点(2)遍历到叶节点(1、6、8、3、11和12)。在这种遍历过程中,我希望获取连接到产品节点13(即)的节点,我希望编写一个返回1、8、9、3、11和12的查询。 @Prashant的回答: 输出 然而,我所需输出的顺序是1、8、9、3、11和12,即在每个级别上,要求选择一个子节

  • 我试图找到一个高效的gremlin查询,它返回顶点和输出边数的遍历。或者更好的是,如果存在或不存在传出边,则使用布尔值代替传出边的数量。 我的第一次尝试是: 第二个想法是: 两者似乎都有效,但是否有更好的解决方案,不需要底层图实现来获取或计数所有边? (我们目前在Postgresql中使用Tinkerpop/Gremlin的sqlg实现,这两个查询似乎都从Postgresql中获取所有传出的边缘。