【问题标题】:Gremlin : fetch result as an ArrayGremlin:以数组形式获取结果
【发布时间】:2017-05-30 07:18:46
【问题描述】:

我正在尝试为 Select 选择 Gremlin 文档中提到的实体

gremlin> g.v(1).as('x').out('knows').as('y').select
==>[x:v[1], y:v[2]]
==>[x:v[1], y:v[4]]

但我试图得到如下结果

gremlin> g.v(1).as('x').out('knows').as('y').select
==>[[x:v[1]], [y:v[2],y:v[4]]]

因为实体“x”的当前场景,它有超过 500 个关联的“y”实体,所以我最终得到了所有“y”实体的相同“x”数据

gremlin> g.v(1).as('x').out('knows').as('y').select
==>[x:v[1], y:v[2]]
==>[x:v[1], y:v[4]]
==>.....
==>[x:v[1], y:v[500]]

有人可以指导我如何做到这一点吗?

【问题讨论】:

  • 嗨,你想用查询检索什么?谢谢。问候
  • @MichelaBonizzi 我有两个班级'x'和'y'。 'x' 和 'y' 之间存在链接。我想获取“x”和所有关联的“y”对象。正如我在问题中提到的,我能够获取,但我想知道我有什么方法可以将所有 'y' 对象作为数组获取?
  • 为了清楚起见 - 您链接到 TinkerPop 2.x 文档。这是否意味着您想要 TinkerPop 2.x 的答案?
  • @stephenmallette 我不知道我使用的是哪个版本。我在 OrientDB 控制台中运行这些 gremlins。
  • 在 orientdb 2.2.20 中有 gremlin 2.6.0

标签: orientdb graph-databases gremlin


【解决方案1】:

你可以使用groupBy():

g.V(1).groupBy{it}{it.out('knows')}.cap()

【讨论】:

    猜你喜欢
    • 2018-05-19
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    • 2014-10-20
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多