Warm tip: This article is reproduced from serverfault.com, please click

amazon neptune-如何在GREMLIN中找到有条件的两个子顶点的父顶点?

(amazon neptune - How to find parent vertex of two child vertices with condition in GREMLIN?)

发布于 2020-12-01 06:51:53

我有下图:

          V1
       /  |  \
      p1  p2  p3

如果我有与GREMLIN中的条件匹配的p1和p3顶点,我想找到父顶点(V1)。我有大约25个单亲节点的子节点。而且我需要找到具有符合条件的任何子顶点的父对象。

例如:如果P1,P2,P3顶点具有以下属性-名称,值。我需要找到父顶点,例如:

SELECT 
   V1
WHERE 
       P1.name = 'a' and P1.value = 'b'
   AND P3.name = 'x' and P3.value = 'y'

(或者)

SELECT 
   V1
WHERE 
       P2.name = 'p' and P2.value = 'q'
   AND P3.name = 'x' and P3.value = 'y'
Questioner
Deepak KS
Viewed
0
Taylor Riggan 2020-12-02 05:59:03

解决此问题的最佳方法是势在必行(任意选择其中一个子顶点作为开始)。

这是这种查询的最简单形式:

g.V().has('Child','name','p1').in('HAS').where(out('HAS').has('name','p2'))

该查询的结果将为V1