OrientDB SQL-如何从内联集合中展开多个属性

问题描述 投票:0回答:1

假设有一个包含对象内联集合的文档,如下面的示例:

{ "name": "Alice", 
  "children": [{ "name": "Bob", "age": 3 }, { "name": "Charlie", "age": 7 }] 
}

我想在集合中为每个项目获取一行,并将每个内部属性作为单独的列,例如:

| name    | childName | childAge |
| Alice   | Bob       | 3        |
| Alice   | Charlie   | 7        |

我尝试了以下查询,但是会生成笛卡尔积:

select name, children.name as childName, children.age as childAge
from Employee
unwind childName, childAge

我还设法通过expandflatten函数提取了每个孩子,但没有引用其父对象。

orientdb
1个回答
0
投票

我想做同样的事情。

我在ODB中能找到的最接近的是将子级分割为顶点,例如此问题:OrientDB: How to flatten nested heirarchy into a single record

我更喜欢用mongo处理它(不完全是我想要的,但是主体在那里。):MongoDB unwind multiple arrays

尝试失败:

  1. 选择名称,来自Test UNWIND孩子的孩子result from query 1
  2. 从中选择value.name,value.age(从Test中选择expand(children))result from query 2如果存在到父级的链接,则可以使用,但value。$ parent返回空。
© www.soinside.com 2019 - 2024. All rights reserved.