Arangodb 如何将另一个集合中的数据合并到密钥或ID数组中?

Arangodb 如何将另一个集合中的数据合并到密钥或ID数组中?,arangodb,arangojs,Arangodb,Arangojs,以下是我面临的问题: 我正在使用Arangob3.7和arangojs驱动程序 我有以下收藏: collection A { _key, data } collection B { _key, aDataList[A._key] } 我试过以下方法 FOR bdoc IN B FILTER bdoc._key == "some_key" FOR adoc IN A FILTER adoc._key IN bdoc.aDataList

以下是我面临的问题:

我正在使用Arangob3.7和arangojs驱动程序

我有以下收藏:

collection A {    _key,    data }

collection B {    _key,    aDataList[A._key] }
我试过以下方法

 FOR bdoc IN B  
 FILTER bdoc._key == "some_key" 
 FOR adoc IN A 
 FILTER adoc._key IN bdoc.aDataList[*]  
 RETURN MERGE(bdoc, adoc)
此查询返回符合指定条件的对象

但我面临的问题是bdoc.aDataList[]顺序与实际B文档集合中的顺序不同。 假设以下是示例列表:

bdoc.aDataList[    1,    2,    3 ]
它需要如何更新

bdoc.aDataList[
   {
     "_key" : 1,
     "data"  : "somedata"
   },
      {
     "_key" : 2,
     "data"  : "somedata"
   },
   {
     "_key" : 3,
     "data"  : "somedata"
   }
]
如何使用单个aql查询将aDataList[A.Key]正确替换为aDataList[A]值

任何帮助都将不胜感激

我找到了答案:)

我不是遍历A的键,而是遍历数组。因此秩序得以维持

FOR bDoc IN B 
FILTER bDoc.key == “somekey” 
LET finalData = ( FOR bDocItem IN bDoc.aDataList
FOR aDoc IN A
FILTER bDocItem[“_key”] == aDoc._key 
RETURN aDoc)
RETURN { "_key" : bDoc.key, aDataList: finalData }