就像在OrientDB中一样,对于获取所有图形,只使用'Select From v‘。
到目前为止,我已经在带有开始节点ArangoDB中使用了AQL:
for v,e,p IN 2 ANY 'user/188802' graph 'a' return p
现在我想在没有开始节点的情况下获得ArangoDB中的所有图形节点?
我使用的是ArangoDB 3.2.25。我想从起始节点中提取邻居节点。
这是我尝试过的:
FOR x IN 1..1
ANY "vert1/5001" Col_edge_L
RETURN x
但是我开始想vert2了。
以下是该集合的架构
{"_from":"vert1/560","_to":"vert2/5687768","id":771195,"score":218}
我有一个简单的图遍历查询:
FOR e in 0..3 ANY 'Node/5025926' Edge
FILTER
e.ModelType == "A.Model" &&
e.TargetType == "A.Target" &&
e.SourceType == "A.Source"
RETURN e
“edge”边缘集合具有按属性ModelType、TargetType、SourceType顺序定义的哈希索引。
检查执行计划时,结果为:
Query string:
FOR e in
我有一个树状结构,它实际上是一个有向无圈图。如下所示的小版本。
对于任何家长,我都想对子树的一些属性进行求和。今天,我将在AQL中使用遍历和基于启动节点的集合来完成此操作:
for c in traversal(nodes,nodeTree,ch,'inbound',{uniqueness:{vertices:'global'}})
collect child = ch._id into group
然后我可以在组上使用聚合。(使用ArangoDB 2.8,我相信现在可以直接在集合语句中完成这一工作。)唯一性选项解决了重复问题。
标度
当树(图)长
我最近读到ArangoDB能够将边连接到图中的其他边。在这种情况下,查询路径是如何工作的?例如:
car <-------- part
^
|
|
installationEvidence
在这种情况下,installationEvidence是连接到零件和汽车之间的边的节点。从car节点开始,返回installationEvidence而不返回part的AQL是什么?p.vertices[1]层是否同时考虑installationEvidence和part?
我在ArangoDB中有一个包含两个顶点集合p和F的图,以及一个包含两种边类型的边集合: fp和hp。
请注意,上图已经简化了-- "F“节点通过更多的"fp”边连接到其他F节点。换句话说,我事先不知道(例如) "F4“是否有一个入站"fp”边缘或更多。
我想使用一个AQL查询来遍历图,从节点PA开始,但在没有入站"hp“边的任何顶点停止。指示停止遍历的方法是使用如下查询:
FOR v, e, p IN 0..100 OUTBOUND 'P/PA'GRAPH 'test'
FILTER p.<verti
当对索引数据库执行AQL时,我发现我的查询要快得多。但是,查询说明没有使用索引。这怎么可能呢?是虫子吗?我在两个相同的数据库中运行相同的查询,只不过其中一个有多种索引,另一个没有索引。在索引数据库中,查询需要5秒。在非索引数据库中,查询需要13秒.两个数据库都表示在解释查询时没有使用索引,并提供了相同的执行计划和优化规则。
查询:
let lastYear = left(date_subtract(date_now(),1,"year"),10)
for v0, e0, in outbound 'myFleet' graph 'myGraph