Gremlin 可选为空

Gremlin optional as empty

能否请您帮助我了解是否有任何选项可以让我们在 gremlin 中跳过可选,

场景是,我们正在遍历一个图并且有一个可选语句

根据请求中的查询参数,我将有一个可选的遍历路径,如果没有,则没有可选的路径

例如,

if query_parameter:
 path=has('labeltest').inE().outV()

g.V('test').optional(path)

因为可选路径适用于 query_parameter 可用条件,所以如果查询参数不可用,这将失败并且 return 没有结果。我们不喜欢通过 if 和 else 条件重复 g.v() 上的代码。任何告诉可选选项不要对 return 先前路径执行任何操作或虚拟选项的想法。感谢您的想法,因为我是新手,在此先感谢您

问候 哈里

如果您不想发生任何事情,您可以将 path 变量设置为 identity()。效果如下:

gremlin> g.V('3').optional(identity())
==>v[3]

具体来说,在 Python 你可以这样做:

>>> p=__.identity()
>>> g.V('3').optional(p).next()
v[3]

如果您是从 python 使用 Gremlin Language Variant (GLV) 执行此操作,那么您只能在需要时添加查询的可选部分。 GLV 是惰性评估的,因此您可以有条件地在代码中构造它们。它们只会在您添加终端步骤(例如 toList())时执行。这意味着您可以像这样构建遍历:

t=g.V('test')
if query_parameter:
  t=t.has('labeltest').inE().outV()
res=t.toList()

使用此代码,仅当 query_parameter 为真时才会执行遍历的可选路径部分,否则它只会 return test 顶点。