【问题标题】:Getting vertices and their edges upon a condition根据条件获取顶点及其边
【发布时间】:2021-07-23 18:24:31
【问题描述】:

我有一组不那么复杂的数据,但我正在努力进行查询。

假设我有一个 id 为 1 的主顶点。 该顶点具有到顶点 10、11 和 12 的边。这些顶点中的每一个都具有到 100 和 101 的边。

如果我这样做:

g.V(1).inE('type').project('e', 'v').by().by(outV().valueMap())

我得到一个顶点列表:10、11 和 12,但我没有得到 100 和 101 的列表。 我假设我可以用 coalesce 或其他东西做某事,但我无法弄清楚这样做的正确方法。

另外,我想根据一个 100 和 101 属性过滤 10、11 和 12 个顶点。这意味着如果 100 具有 x = 1 之类的属性,而 101 具有 x = 2 之类的属性,我只想获取指向 x = 1 顶点的顶点(在 10-12 集中)。

【问题讨论】:

    标签: gremlin amazon-neptune


    【解决方案1】:

    假设您不想要所有路径并且只希望访问所有相关顶点,您可以执行以下操作。

    gremlin> g.addV().property(id,'1').as('1').
    ......1>   addV().property(id,'10').as('10').
    ......2>   addV().property(id,'11').as('11').
    ......3>   addV().property(id,'12').as('12').
    ......4>   addV().property(id,'100').property('p',1).as('100').
    ......5>   addV().property(id,'101').property('p',2).as('101').
    ......6>   addE('link').from('1').to('10').
    ......7>   addE('link').from('1').to('11').
    ......8>   addE('link').from('1').to('12').
    ......9>   addE('link').from('10').to('100').
    .....10>   addE('link').from('11').to('101')
    ==>e[61381][11-link->101]
    
    gremlin> g.V('1').out().store('a').out().has('p',2).store('a').cap('a').dedup()
    ==>[v[10],v[11],v[12],v[101]]  
    

    【讨论】:

    • 谢谢!现在我必须明白你做了什么。不知道 store() 函数,所以我将不得不阅读它。
    猜你喜欢
    • 2020-02-05
    • 1970-01-01
    • 2021-01-23
    • 2022-11-25
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多