我使用的是图的公共邻居,但我只需要返回得到的顶点,不需要花哨的
[
{collection/1:{
collection/2:[
{_id:3 ...},
{_id:7 ...}
]
}
]
我只需要返回的_id:3和_id:7部分:
[
{_id:3 ...},
{_id:7 ...}
]
现在我正试着打破我的头脑如何理解这一点,因为它不是列表,我不能FLATTEN它。是否有一些隐藏的功能或钩子只返回结果顶点?或者,我应该使用两个GRAPH_NEIGHBORS查询手动执行此操作,就像我相信它通常所做的那样,并用第一个查询限制第二个查询吗?
确定最终查询,以我想要的格式返回结果:
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]
它返回了我想要的结果,尽管它可能还需要一些改进,比如按标题字母顺序对结果进行排序。。。我试过了,但没用。
结果结构的原因是您可以用示例而不是单个顶点来调用它。当然,在你的情况下,邻居属于哪个顶点对是显而易见的。要对结果进行排序,您可以执行以下操作:
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