Gremlin:检查遍历步骤或集合中的存在

Gremlin : Checking existence in traversal step or set

背景:

我正在尝试 运行 通过图形进行搜索,并根据发现的节点是否属于执行查询之前可用的预定义集来更改搜索行为。

我找不到任何关于如何在 gremlin 中交叉检查集合中是否存在顶点或属性的文档。

示例:

给定:g.V('id1', 'id2', 'id3').as('a')

查找:如果a包括'id4'

给定:g.V('id1', 'id2', 'id3').fold().store('a') => ['id1', 'id2', 'id3']

查找:如果a包含id4

解决此问题的一种方法是使用 coalesce 步骤。这是来自 Gremlin 控制台的一个简单示例。

gremlin> g.V(1,2,3).fold().as('found').V(3).coalesce(where(within('found')).constant('found'),constant('not found'))
==>found

gremlin> g.V(1,2,3).fold().as('found').V(4).coalesce(where(within('found')).constant('found'),constant('not found'))
==>not found