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
顶点。
能否请您帮助我了解是否有任何选项可以让我们在 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
顶点。