Arangodb 如何将另一个集合中的数据合并到密钥或ID数组中?
以下是我面临的问题: 我正在使用Arangob3.7和arangojs驱动程序 我有以下收藏: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
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 }