OrientDB SQL-如何从内联集合中展开多个属性
假设有一个包含内联对象集合的文档,如下例所示:OrientDB SQL-如何从内联集合中展开多个属性,orientdb,Orientdb,假设有一个包含内联对象集合的文档,如下例所示: { "name": "Alice", "children": [{ "name": "Bob", "age": 3 }, { "name": "Charlie", "age": 7 }] } 我希望在集合中为每个项获取一行,并将每个内部属性作为单独的列,例如: | name | childName | childAge | | Alice | Bob | 3 | | Alice | Charlie
{ "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
我还使用expand和flant函数提取了每个子级,但没有对其父级的任何引用。我想做同样的事情 我能在ODB中找到的最接近的方法是将子对象分成顶点,如下面的问题所示: 我更愿意按照mongo的方式来做这件事,这并不完全是我想要的,但校长在那里 失败的尝试: 从测试展开子项中选择名称、子项 从测试中选择value.name、value.age 如果有一个指向父级的链接,这将起作用,但value.$parent返回空。
我也想做同样的事情 我能在ODB中找到的最接近的方法是将子对象分成顶点,如下面的问题所示: 我更愿意按照mongo的方式来做这件事,这并不完全是我想要的,但校长在那里 失败的尝试: 从测试展开子项中选择名称、子项 从测试中选择value.name、value.age 如果有一个指向父级的链接,这将起作用,但value.$parent返回空。
您可以做的最简单的事情如下:
SELECT name, children.name as childName, children.age as childAge FROM (
SELECT name, children FROM Employee UNWIND children
)
您可以做的最简单的事情如下:
SELECT name, children.name as childName, children.age as childAge FROM (
SELECT name, children FROM Employee UNWIND children
)