如何使用Gremlin在Amazon Neptune中查询同类型顶点的两个值?
用Gremlin实现Amazon Neptune中同类型顶点的IN查询
你需要实现的是类似SQL中IN的查询逻辑,找出标签为Parts且ID属于指定集合的顶点属性值,原Gremlin语句的问题在于连续使用.has('Parts', '~id', ...)是逻辑与,要求顶点同时满足两个ID条件,这显然无法匹配到数据。
以下是正确的实现方式:
方法1:使用hasLabel+has+within
通过within指定ID的集合,同时限定顶点标签:
g.V().hasLabel('Parts').has('~id', within('ABCD', 'PQRS')).values()
方法2:使用hasLabel+hasId(更简洁)
因为~id是Neptune顶点的内置ID属性,直接用hasId可以简化写法:
g.V().hasLabel('Parts').hasId('ABCD', 'PQRS').values()
或者结合within的写法:
g.V().hasLabel('Parts').hasId(within('ABCD', 'PQRS')).values()
以上语句的效果等价于SQL:
select * from Parts where id in ('ABCD', 'PQRS')
会返回所有标签为Parts且ID为ABCD或PQRS的顶点的所有属性值。
内容的提问来源于stack exchange,提问作者Aditya
相关产品推荐
相关产品推荐

