gpt4 book ai didi

graph-databases - Apache Tinkerpop Gremlin 使用 Select Values As 返回查询结果

转载 作者:行者123 更新时间:2023-12-02 00:56:05 26 4
gpt4 key购买 nike

我有这个查询,它正在按我预期的方式工作。

g.V().or(hasLabel("poi"),hasLabel("business")).as("dest")
.outE().inV().hasLabel("region").as("reg")
.select("dest").values("name").as("dest_name")
.select("dest").values("budget").as("dest_budget")
.select("reg").values("name").as("reg_name")
.select("reg_name","dest_name","dest_budget")

这个查询产生这个结果。

enter image description here

如我所料。但是我需要从“目的地”检索更多属性我需要检索更多 10 个属性。这会让我陷入这样的境地

g.V().or(hasLabel("poi"),hasLabel("business")).as("dest")
.outE().inV().hasLabel("region").as("reg")
.select("dest").values("name").as("dest_name")
.select("dest").values("budget").as("dest_budget")
.select("dest").values("property3").as("property3")
.select("dest").values("property4").as("property4")
//insert more queries like from the above
.select("reg").values("name").as("reg_name")
.select("reg_name","dest_name","dest_budget","property3","property4")

查询最终会变长,我试图避免这种情况,因为我也需要从区域中选择值。所以我最初的想法是使用 select 来选择多个值并用这样的别名标记每个值

g.V().
or(hasLabel("poi"),hasLabel("business"))
.as("destination")
.outE().inV().as("region")
.select("destination").values("name","budget").as("dest_name","dest_budget")
.select("region").values("name").as("reg_name")
.select("dest_name","reg_name","dest_budget")

然而,我对这个结果感到惊讶。这是我没想到的。

enter image description here

据我了解,values 中的名称将映射到 as 步骤中传递的每个值。我错了吗?

我是否可以在不编写长查询的情况下从第一个屏幕截图中检索结果?

最佳答案

as() 标记步骤,而不是该步骤中的值。所以通过这样做:

.select("destination").values("name","budget").as("dest_name","dest_budget")

您只是将 values() 步骤命名了两次。我认为您可以极大地简化这种遍历以获得您想要得到的结果,并且它不涉及将大量 select() 步骤串在一起:

g.V().or(hasLabel("poi"),hasLabel("business")).
project('dest_name','dest_budget','reg_name').
by('name').
by('budget').
by(out().hasLabel("region").values('name').fold())

您会得到一个略有不同的结构,因为“reg_name”将是所有区域名称的列表,而不是具有扁平结构,但如果需要,您可以展开我想象的结构。

关于graph-databases - Apache Tinkerpop Gremlin 使用 Select Values As 返回查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54169845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com