将出边的计数添加到顶点的 elementMap
Add count of outgoing edges to a vertice's elementMap
使用机场数据集,我想 return 每个机场的完整 elementMap
- 加上传入“路线”边缘的计数。
我现在拥有的是这样的(Link 例如:https://gremlify.com/z05d54wyt99)
g.V().hasLabel('airport').
project('airport', 'count').
by(elementMap()).
by(inE('route').count())
但是 return 对象和计数是分开的:
{
"airport": {
"id": 5763,
"label": "airport",
"code": "AUS"
},
"count": 1
}
相反,我正在寻找的是这样的:
{
"id": 5763,
"label": "airport",
"code": "AUS",
"count": 1
}
我知道我可以使用 project
来单独指定每个 属性,但是有更好的方法吗?
提前致谢!
这是一种可以完成的方法。这使用通用的 Gremlin 模式将两个地图合并为一个。还有其他方法可以做到这一点。我使用 limit(2)
只是为了让示例有两个结果。在某些方面,我更喜欢您的原始查询,因为它非常简单,您可以很容易地在应用程序中提取结果。
gremlin> g.V().hasLabel('airport').
......1> limit(2).
......2> project('results').
......3> by(union(elementMap(),project('count').by(inE('route').count())).fold()).
......4> local(
......5> select('results').unfold().unfold().
......6> group().
......7> by(keys).
......8> by(select(values)))
==>[country:US,code:ATL,longest:12390,city:Atlanta,count:242,lon:-84.4281005859375,type:airport,label:airport,elev:1026,id:1,icao:K
ATL,region:US-GA,runways:5,lat:33.6366996765137,desc:Hartsfield - Jackson Atlanta International Airport]
==>[country:US,code:ANC,longest:12400,city:Anchorage,count:40,lon:-149.996002197266,type:airport,label:airport,elev:151,id:2,icao:P
ANC,region:US-AK,runways:3,lat:61.1744003295898,desc:Anchorage Ted Stevens]
使用机场数据集,我想 return 每个机场的完整 elementMap
- 加上传入“路线”边缘的计数。
我现在拥有的是这样的(Link 例如:https://gremlify.com/z05d54wyt99)
g.V().hasLabel('airport').
project('airport', 'count').
by(elementMap()).
by(inE('route').count())
但是 return 对象和计数是分开的:
{
"airport": {
"id": 5763,
"label": "airport",
"code": "AUS"
},
"count": 1
}
相反,我正在寻找的是这样的:
{
"id": 5763,
"label": "airport",
"code": "AUS",
"count": 1
}
我知道我可以使用 project
来单独指定每个 属性,但是有更好的方法吗?
提前致谢!
这是一种可以完成的方法。这使用通用的 Gremlin 模式将两个地图合并为一个。还有其他方法可以做到这一点。我使用 limit(2)
只是为了让示例有两个结果。在某些方面,我更喜欢您的原始查询,因为它非常简单,您可以很容易地在应用程序中提取结果。
gremlin> g.V().hasLabel('airport').
......1> limit(2).
......2> project('results').
......3> by(union(elementMap(),project('count').by(inE('route').count())).fold()).
......4> local(
......5> select('results').unfold().unfold().
......6> group().
......7> by(keys).
......8> by(select(values)))
==>[country:US,code:ATL,longest:12390,city:Atlanta,count:242,lon:-84.4281005859375,type:airport,label:airport,elev:1026,id:1,icao:K
ATL,region:US-GA,runways:5,lat:33.6366996765137,desc:Hartsfield - Jackson Atlanta International Airport]
==>[country:US,code:ANC,longest:12400,city:Anchorage,count:40,lon:-149.996002197266,type:airport,label:airport,elev:151,id:2,icao:P
ANC,region:US-AK,runways:3,lat:61.1744003295898,desc:Anchorage Ted Stevens]