使用 aql 遍历嵌套数组

nhuang

这是我的 aql 查询,它为我提供了到特定顶点的路径:

FOR v, e, p IN 1..2 OUTBOUND @startVertex GRAPH 'courses'
    FILTER v._id == @target
    RETURN p.vertices

它返回这样的东西

[
  [
    {
      "_key": "ADELPHI+UNIVERSITY==BIO+111",
      "_id": "courses/ADELPHI+UNIVERSITY==BIO+111"
    },
    {
      "_key": "BOSTON+UNIVERSITY==CAS+BI+108",
      "_id": "courses/BOSTON+UNIVERSITY==CAS+BI+108"
    }
  ],
  [
    {
      "_key": "ADELPHI+UNIVERSITY==BIO+111",
      "_id": "courses/ADELPHI+UNIVERSITY==BIO+111"
    },
    {
      "_key": "UNIVERSITY+OF+NEVADA-LAS+VEGAS==BIOL+196",
      "_id": "courses/UNIVERSITY+OF+NEVADA-LAS+VEGAS==BIOL+196"
    },
    {
      "_key": "BOSTON+UNIVERSITY==CAS+BI+108",
      "_id": "courses/BOSTON+UNIVERSITY==CAS+BI+108"
    }
  ]
]

当我使用FOR运算符并尝试遍历p.verticesor 时p.vertices[*],它总是会展平数组。基本上我想遍历每个数组并为每个数组返回一些东西。

就像这个python代码:

lists = [[], [], []]
for l in lists:
    do_something_with_list(l)
彼得·利亚平

选项 #1:您可以将AQL 变量子查询(嵌套 FOR)一起使用,如下面的更新示例中所示:

FOR v, e, p IN 1..2 OUTBOUND @startVertex GRAPH 'courses'
    FILTER v._id == @target

LET updatedVertices = (
    FOR v in p.vertices
    // here you can change the value of v as you want
    // in my sample here I convert a v object to a 
    // string representing it's _id
    RETURN v._id 
)

RETURN updatedVertices

选项#2:如果您有一个复杂的对象转换逻辑(即,如果您的示例中的 do_something_with_list 不是那么简单并且无法使用普通 AQL 完成),您也可以使用User Function第一步,您必须注册您的用户函数,我们称之为 DO_SOMETHING_WITH_LIST。然后,当您想使用它时,您的 AQL 将如下所示:

FOR v, e, p IN 1..2 OUTBOUND @startVertex GRAPH 'courses'
    FILTER v._id == @target

LET updatedVertices = DO_SOMETHING_WITH_LIST(p.vertices)

RETURN updatedVertices

注意,上面的用户函数必须接受和数组并返回一个数组。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AQL 嵌套数组值

来自分类Dev

使用嵌套数组遍历AngularJS资源

来自分类Dev

使用JavaScript遍历嵌套数组元素

来自分类Dev

使用嵌套数组对象遍历数组的属性

来自分类Dev

如何使用javascript正确遍历嵌套数组。

来自分类Dev

AQL优化-按月遍历

来自分类Dev

如何使用余烬遍历车把1.3中的嵌套数组(适用于iOS8)

来自分类Dev

如何遍历嵌套数组,然后使用Javascript按预定义顺序存储输出

来自分类Dev

嵌套数组如何使用smarty正确地进行遍历(循环内循环)

来自分类Dev

在使用Javascript / AngularJS遍历2个嵌套数组并进行比较时需要帮助

来自分类Dev

AQL(ArangoDb)中的递归遍历

来自分类Dev

Arangodb AQL递归图遍历

来自分类Dev

遍历嵌套数组

来自分类Dev

数组值使用PHP嵌套数组

来自分类Dev

从AQL查询数组导入Arangodb

来自分类Dev

如何使用余烬遍历车把1.3中的嵌套数组(在iOS8上有效)

来自分类Dev

使用is_array()检测嵌套数组

来自分类Dev

使用KnockoutJS删除嵌套数组

来自分类Dev

在嵌套数组上使用$ unwind的后果?

来自分类Dev

使用JQuery解析JSON嵌套数组

来自分类Dev

使用UpdateOne()更新嵌套数组

来自分类Dev

如何使用elemMatch匹配嵌套数组

来自分类Dev

MongoDB:使用分页查询嵌套数组

来自分类Dev

groupBy使用lodash嵌套数组

来自分类Dev

如何使用Mongoose更新嵌套数组?

来自分类Dev

使用jmes查询过滤嵌套数组

来自分类Dev

MongoDB聚合对嵌套数组使用$ elemMatch

来自分类Dev

使用MOXy编组嵌套数组

来自分类Dev

javascript使用forEach嵌套数组