使用OrientDB

时间:2019-03-18 19:44:43

标签: orientdb sqlplus graph-databases

我正在尝试通过OUT()投影将连接的节点的数据存储在OrientDB中选定节点的属性中。例如:

SELECT *, OUT("Has_Friend") AS Friends FROM Person

鉴于“ Person”节点通过“ Has_Friend”边缘连接到多个“ Friend”节点,我希望实际的Friend Node属性存储在此查询返回的每个Person节点的“ Friends”属性中。例如:

{
    "result": [
        {
            "Name": "Joe",
            "Friends": [
                {
                 "Name": "Ben",
                 "Title": "Mr."
                },
                {
                 "Name": "Stan",
                 "Title": "Dr."
                }
            ]
        },
        {
            "Name": "Tim",
            "Friends": [
                {
                 "Name": "Terrance",
                 "Title": "Esq."
                },
                {
                 "Name": "Sarah",
                 "Title": "Dr."
                }
            ]
        }
    ]
}

但是,查询仅将每个“朋友”节点的RID存储在“朋友”属性中,而不是存储该“朋友”节点的实际数据。例如:

{
    "result": [
        {
            "Name": "Joe",
            "Friends": [
                "#228:1",
                "#227:1"
            ]
        },
        {
            "Name": "Tim",
            "Friends": [
                "#225:1",
                "#226:1"
            ]
        }
    ]
}

我已经搜索了OrientDB文档,但是不确定如何实现。我怀疑有一种方法可以在主查询中嵌套那些Friend节点的查询,但是我不确定如何做到这一点。任何见解都将不胜感激!

1 个答案:

答案 0 :(得分:0)

尝试使用expand()功能。它将扩展该链接指向的文档,并提供此文档的所有属性。因此您的查询应如下所示:

SELECT expand(in("Has_Friend")) AS Friend FROM Person