У меня есть запрос, который работает для меня, как ожидалось.
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. Я ошибся?
Можно ли как-нибудь получить результат с первого снимка экрана, не написав длинного запроса?