gpt4 book ai didi

arangodb - Arango db在遍历图时生成面包屑

转载 作者:行者123 更新时间:2023-12-04 17:49:40 25 4
gpt4 key购买 nike

我在arangodb项目网站上到处搜索,但没有找到解决方案。如果我遍历像大陆/国家/首都这样的简单树状图,我怎样才能获得当前项目的面包屑?希望这是有道理的

最佳答案

我将从您使用 arangosh 和 Gremlin.JS 的示例开始。稍后我将在所有语言驱动程序中使用 AQL。

arangosh [_system]> var Graph = require("org/arangodb/graph").Graph;

首先是不同的地点(地区、城市):
arangosh [_system]> v1 = g.addVertex("Earth");
arangosh [_system]> v2 = g.addVertex("Europe");
arangosh [_system]> v3 = g.addVertex("Germany");
arangosh [_system]> v4 = g.addVertex("Berlin");
arangosh [_system]> v5 = g.addVertex("Spain");
arangosh [_system]> v6 = g.addVertex("Barcelona");

和他们的关系:
arangosh [_system]> g.addEdge(v1, v2);
arangosh [_system]> g.addEdge(v2, v3);
arangosh [_system]> g.addEdge(v3, v4);
arangosh [_system]> g.addEdge(v2, v5);
arangosh [_system]> g.addEdge(v5, v6);

所以图形现在是你的树:
arangosh [_system]> v1.outbound().getInVertex()
[ Vertex("Europe") ]

arangosh [_system]> v1.outbound().getInVertex().outbound().getInVertex()
[ [ Vertex("Germany"), Vertex("Spain") ] ]

arangosh [_system]> v1.outbound().getInVertex().outbound().getInVertex().outbound().getInVertex()
[ [ [ Vertex("Berlin") ], [ Vertex("Barcelona") ] ] ]

为了从柏林获取面包屑,您可以计算从柏林到地球的路径:
arangosh [_system]> v4.pathTo(v1);
[
[
"Berlin",
"Germany",
"Europe",
"Earth"
]
]

使用 AQL,您可以使用遍历从柏林返回到根:
arangosh [_system]> db._query('FOR p in TRAVERSAL(locations, part, @start, "inbound", {}) RETURN p.vertex._key', { start: v4._id } ).toArray()
[
"Berlin",
"Germany",
"Europe",
"Earth"
]

我希望这个例子能让你知道如何创建面包屑。

干杯
坦率

关于arangodb - Arango db在遍历图时生成面包屑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20302794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com