【发布时间】:2019-01-13 14:29:58
【问题描述】:
我有这个查询,它按预期工作。
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")
这个查询产生这个结果。
正如我所料。但是我需要从“目标”中检索更多属性,我需要检索更多 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")
但是我对这个结果感到惊讶。这是我没想到的。
据我了解,值中的名称将映射到 as 步骤中传递的每个值。我错了吗?
我是否可以在不编写长查询的情况下从第一个屏幕截图中检索结果?
【问题讨论】:
标签: graph-databases gremlin tinkerpop datastax-enterprise-graph