【问题标题】:ArangoDB - How can I return only the _id from AQL TRAVERSAL?ArangoDB - 如何仅从 AQL TRAVERSAL 返回 _id?
【发布时间】:2015-08-25 14:46:05
【问题描述】:

我只想从下面的p.path 的边和顶点返回_id

LET from = (
    FOR u IN products
        FILTER u.name == 'pagfr21'
        RETURN u._id
)
FOR p IN TRAVERSAL(products, productsrelated, from[0], 'outbound',
        {minDepth: 0, maxDepth: 3, paths: true})
    RETURN p.path

【问题讨论】:

标签: arangodb aql


【解决方案1】:

您可以收集verticesedges 子属性的ID,而不是返回p.path,并将它们返回到两个单独的数组中,例如

LET from = (FOR u IN products FILTER u.name == 'foo' RETURN u._id) 

FOR p IN TRAVERSAL(products, productsrelated, from[0], 'outbound', {
  minDepth: 0, 
  maxDepth: 3, 
  paths: true 
}) 

RETURN { 
  vertices: p.path.vertices[*]._id, 
  edges: p.path.edges[*]._id 
}

它将返回如下结构:

[
  {
    "vertices": [
      "products/..."
    ],
    "edges": []
  },
  {
    "vertices": [
      "products/...",
      "products/..."
    ],
    "edges": [
      "productsrelated/..."
    ]
  },
  ...
  {
    "vertices": [
      "products/...",
      "products/...",
      "products/..."
    ],
    "edges": [
      "productsrelated/...",
      "productsrelated/..."
    ]
  }
]

【讨论】:

  • 这有效吗?如果是,您是否介意接受答案以帮助有相同问题的潜在其他人?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多