2

我正在使用图形共同邻居,但我只需要返回结果顶点,不需要花哨

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

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

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

现在我正试图打破我的头脑如何解决这个问题,因为它不在列表中,我无法将其展平。是否有一些隐藏的特征或钩子只返回结果顶点?或者我应该使用两个 GRAPH_NEIGHBORS 查询手动执行此操作,因为我相信它通常会做什么,并使用第一个查询限制第二个查询?

4

2 回答 2

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]

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

于 2014-09-14T14:32:41.547 回答
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
于 2014-09-18T13:40:01.400 回答