arangob自联接查询结果



我正在尝试自联接、合并父字段并将结果作为单独的文档获取数据:

[
{_key="1",name":"a",mf:"xyz"},
{_key="2","name":"b", "parent":"1"},
{_key="3","name":"c", "parent":"1"},
{_key="4",name":"d",mf:"xyzw"},
{_key="5","name":"e", "parent":"4"},
]

查询:

for i in data
let o=i.parent>0 ? (for d in data filter i._key==d.parent return merge(d,{mf:i.mf}) : i
return o

预期结果:

[
{_key="1",name":"a",mf:"xyz"},
{_key="2","name":"b", "parent":"1",mf:"xyz"},
{_key="3","name":"c", "parent":"1",mf:"xyz"},
{_key="4",name":"d",mf:"xyzw"},
{_key="5","name":"e", "parent":"4",mf:"xyzw"},
}

在阿兰戈布可以这样做吗?

在这里,您可以找到关于如何联接集合(以及页面下方的自联接(的示例。

在您的特定情况下,查询可能看起来像这样:

for i in data
return i.parent == null ? i : MERGE(i, {
mf: (for j in data filter j._key == i.parent return j.mf)[0]
})

最新更新