Gremlin如何检查顶点的Set属性中是否包含指定值
Gremlin检查顶点Set属性包含指定值的实现方法
场景1:遍历过程中直接过滤判断
TinkerPop 3.4及以上版本可以直接使用P.contains谓词实现,示例代码如下:
import org.apache.tinkerpop.gremlin.process.traversal.P // 请替换参数:your_set_property为Set属性的名称,target_value为待检查的特定值 def isContains = graph.traversal().V(id) .has("your_set_property", P.contains("target_value")) .hasNext()
返回值isContains为true即表示Set属性包含目标值,反之则不包含。
如果你的TinkerPop版本低于3.4,没有内置P.contains谓词,可以用filter步骤替代实现:
import org.apache.tinkerpop.gremlin.process.traversal.P def isContains = graph.traversal().V(id) .filter(values("your_set_property").is(P.within("target_value"))) .hasNext()
场景2:已获取顶点对象后本地判断
如果你已经拿到了顶点实例,直接读取Set属性调用原生方法判断即可:
// 先获取指定id的顶点 def vertex = graph.traversal().V(id).next() // 读取Set属性 def setProperty = vertex.value("your_set_property") // 调用集合的contains方法判断 def isContains = setProperty.contains("target_value")
内容的提问来源于stack exchange,提问作者user1116377
相关产品推荐
相关产品推荐

