使用arangodb insert中的collect创建新文档
我有一个名为prodSampleNew的集合,其中的文档在arangodb中具有层次结构级别作为字段:使用arangodb insert中的collect创建新文档,arangodb,aql,Arangodb,Aql,我有一个名为prodSampleNew的集合,其中的文档在arangodb中具有层次结构级别作为字段: { prodId: 1, LevelOne: "clothes", LevelTwo: "pants", LevelThree: "jeans", ... etc.... } 我希望将层次结构级别转换为它们自己的文档,以便最终使用层次结构构建适当的图形 我能够通过以下方法提取层次结构的第一级,并将其放入新集合中: for i IN [1
{
prodId: 1,
LevelOne: "clothes",
LevelTwo: "pants",
LevelThree: "jeans",
... etc....
}
我希望将层次结构级别转换为它们自己的文档,以便最终使用层次结构构建适当的图形
我能够通过以下方法提取层次结构的第一级,并将其放入新集合中:
for i IN [1]
let HierarchyList = (
For prod in prodSampleNew
COLLECT LevelOneUnique = prod.LevelOne
RETURN LevelOneUnique
)
FOR hierarchyLevel in HierarchyList
INSERT {"name": hierarchyLevel}
IN tmp
然而,必须在[1]的顶端加上一个for I似乎是错误的,应该有更好的方法。(是的,我对AQL还相当陌生)
如果有任何关于更好的方法的建议,我们将不胜感激不确定您到底想实现什么。 [1]中i的
似乎没有必要,因此您可以直接使用子查询启动AQL查询,以计算层次结构级别1中的不同值:
LET HierarchyList = (
FOR prod IN prodSampleNew
COLLECT LevelOneUnique = prod.LevelOne
RETURN LevelOneUnique
)
FOR hierarchyLevel IN HierarchyList
INSERT {"name": hierarchyLevel} IN tmp
结果应该是一样的
如果问题更像是“如何从所有层次结构中获取所有不同级别的名称”,那么您可以使用
LET HierarchyList = UNIQUE(FLATTEN(
FOR prod IN prodSampleNew
RETURN [ prod.LevelOne, prod.LevelTwo, prod.LevelThree ]
))
...
为级别1-3生成具有层次结构级别唯一名称的数组
这不应该回答您的问题吗?请描述查询应该产生的预期结果。谢谢!您的第二个查询正是我试图做的,这样我就可以为每个层次创建单独的文档。它就像一个符咒。