限制每个类别的图形数据库响应



我确信已经有一个SO问题在问同样的问题,但我一直找不到。也许我只是不知道用什么词来正确表达这个问题。一些背景:我正在决定AWS Neptune是否适合即将到来的项目。因此,我显然可以使用SPARQL引擎和Tinkerpop/Gremlin引擎,如果这有助于回答这个问题的话。

假设我在图形数据库中有项目。这些项目有一个名为类别的"属性"。是否可以从每个不同的类别中获得最多20件商品?

我已经搜索了各种SPARQL资源(例如文档(,但没有发现任何描述这类功能的内容,而且我在以前的SPARQL遭遇中从未这样做过。不熟悉TinkerPop和Gremlin,但我最初的阅读也没有涉及到这一点。

使用Gremlin非常简单。使用航线图,该图具有每个机场的区域属性。以下查询将返回加利福尼亚州和得克萨斯州的五个或更少的机场(图中每个州都有五个以上的机场(。

gremlin> g.V().has('airport','region',within('US-CA','US-TX')).
group().
by('region').
by(identity().limit(5).fold())
==>[US-TX:[v[3],v[8],v[11],v[33],v[38]],US-CA:[v[13],v[23],v[24],v[26],v[27]]]

已编辑:添加了不查找特定区域的附加示例。

gremlin> g.V().hasLabel('airport').
limit(50).
group().
by('region').
by(identity().limit(5).fold())
==>[US-FL:[v[9],v[15],v[16],v[19],v[25]],US-NV:[v[30]],US-HI:[v[37]],US-TX:[v[3],v[8],v[11],v[33],v[38]],US-WA:[v[22]],US-NY:[v[12],v[14],v[32],v[35]],US-NC:[v[21]],US-LA:[v[34]],GB-ENG:[v[49],v[50]],US-PA:[v[45]],US-DC:[v[7]],US-NM:[v[44]],US-AZ:[v[20],v[43]],US-TN:[v[4]],CA-BC:[v[48]],CA-ON:[v[47]],PR-U-A:[v[40]],US-MN:[v[17]],US-IL:[v[18]],US-AK:[v[2]],US-VA:[v[10]],US-CO:[v[31]],US-MD:[v[6]],US-IA:[v[36]],US-MA:[v[5]],US-CA:[v[13],v[23],v[24],v[26],v[27]],US-UT:[v[29]],US-OH:[v[41]],US-GA:[v[1]],US-MI:[v[46]]]

最新更新