【问题标题】:Gremlin - how to ensure one vertex only have one inbound edge?Gremlin - 如何确保一个顶点只有一个入站边?
【发布时间】:2022-12-17 02:50:11
【问题描述】:

我有person顶点和book顶点通过owns边连接(又名person=>owns=>book)。我如何确保一个book只能由一个person拥有?换句话说,仅当顶点 book_1 没有入站边时,我才需要像 addE('owns').from(person_1).to(book_1) 这样的 Gremlin 查询。

【问题讨论】:

    标签: gremlin graph-databases amazon-neptune


    【解决方案1】:

    此模式在“元素存在”recipe 中进行了描述,并遵循标准的fold()/coalesce()/unfold() 模式。基本上,你会这样:

    g.V('book_1_id').as('book_1').
      V('person_1_id').as('person_1').
      coalesce(outE('owns').where(outV().as('book_1')),
               addE('owns').from(`person_1`).to(`book_1`))
    

    如果您使用的是 TinkerPop 3.6.x 或更高版本,您可以尝试使用 mergeE() step

    g.mergeE([(from):'book_id_1',(to):'book_id_1',(label):'owns'])
     
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-14
      • 1970-01-01
      • 1970-01-01
      • 2022-11-09
      • 1970-01-01
      • 1970-01-01
      • 2021-09-30
      相关资源
      最近更新 更多