如何将选定的属性从一个 gremlin 查询传递到另一个?

问题描述

我正在尝试将选定的属性一个遍历传递到另一个遍历。但它不适用于纯粹的小鬼方式。

g.V().has('pname',name).has('version',within(V().has('ecosystem',ecosystem).has('name',name).values('latest_version','latest_non_cve_version').))

但是,当我将上述查询拆分为多个语句时,它会起作用。

x = g.V().has('ecosystem','latest_non_cve_version').toList(); g.V().has('pname',within(x))

有没有办法用纯 gremlin 方式实现相同的效果

解决方法

within 谓词不能进行遍历。您应该能够通过简单地反转查询的两个部分来完成您需要的操作。由于我没有您的数据,因此我展示了一个使用航线数据集的示例。您需要的查询最终将是这样的:

gremlin> g.V().has('region',within('US-NM','US-TX')).
               values('region').
               fold().as('a').
           V().hasLabel('airport').
               where(within('a')).
                 by('region').
                 by().
               count()
==>36