GRAPH_COMMON_NEIGHBORS只返回没有路径的公共邻居?

时间:2014-09-14 12:33:38

标签: arangodb

我使用图形常见邻居,但我只需要返回结果顶点,不需要花哨

[
  {collection/1:{
    collection/2:[
     {_id:3 ...},
     {_id:7 ...} 
    ]
  }
]

我只需要返回部分_id:3和_id:7:

[
  {_id:3 ...},
  {_id:7 ...}
]

现在我试图弄清楚如何评价这一点,因为它不是列表我不能轻易实现它。是否有一些隐藏的功能或钩子只返回结果顶点?或者我应该使用两个GRAPH_NEIGHBORS查询手动执行此操作,因为我相信它通常会做什么,并使用第一个查询限制第二个查询?

2 个答案:

答案 0 :(得分:1)

确定最终查询以我想要的格式返回结果:

FOR entry 
IN GRAPH_COMMON_NEIGHBORS('nodes', "node/137789480179", "node/137987398899", {direction: 'outbound'}, {direction: 'outbound'}) 
FOR a in ATTRIBUTES(entry) FOR b in ATTRIBUTES(entry[a]) RETURN entry[a][b]

它返回我想要的结果,虽然它仍然可能需要一些改进,比如按字母顺序按标题排序结果...我已经尝试过但它不起作用。

答案 1 :(得分:0)

结果结构的原因是您可以使用示例而不是单个顶点来调用它。在你的情况下,当然很明显邻居属于哪个顶点对。 要对结果进行排序,您可以执行以下操作:

FOR entry IN GRAPH_COMMON_NEIGHBORS("nodes", "node/137789480179", "node/137987398899",      {maxDepth : 2}, {maxDepth : 2}) LET X =  entry["node/137789480179"]["node/137987398899"] FOR v      IN X SORT v.name DESC RETURN v