Select gremlin 查询中的多个边和顶点

Select multiple edges and vertexes in a gremlin query

我正在创建一个具有多条边的顶点,但需要一些帮助来编写查询来检索数据。

创建查询

g.addV("referral")
                            .as("r")
                            .property("createdAt", Date.now())
                            .addE("prospect")
                            .from_("r")
                            .to(__.V(user.id))
                            .addE("opportunity")
                            .from_("r")
                            .to(__.V(second_user.id))
                            .addE("referredBy")
                            .from_("r")
                            .to(__.V(business.id))
                            .select("r")
                            .next()

我想 运行 一个从第一个和第二个用户获取数据的查询。到目前为止我有

g.V(business.id) //business
            .in_("opportunity")
            .as("referral")
            .outV("referredBy")
            .as("referrer")
            .inV("prospect")
            .as("prospect")
            .select("referral", "referrer", "prospect")
            .toList()
            .next()

我在 运行 执行此查询时遇到错误。我基本上想要一个我可以迭代的对象中的推荐人、推荐人和潜在客户的数组。此外,任何有助于改进我的初始查询的帮助都会有所帮助。

请让我知道这是否有意义或者您是否需要任何其他信息。任何帮助将不胜感激。

这些错误是因为您在应该使用 out 时使用了 outV。你只需要在 outEinE 之后使用 inVoutV。所以你的查询应该是

g.V(business.id) //business
 .in("opportunity")
 .as("referral")
 .out("referredBy")
 .as("referrer")
 .in("prospect")
 .as("prospect")
 .select("referral", "referrer", "prospect")
 .toList()

你也不需要 next 因为你已经有了 toList.

最后,我不会使用 asselect,而是查看 path 步骤。

g.V(business.id) //business
 .in("opportunity")
 .out("referredBy")
 .in("prospect")
 .path()
 .toList()