1

我是 OrientDB 的新手。我想知道(如果可能的话)如何用 aselect或 a match(或其他)获得以下结果:

我有一个Activity顶点,一个顶点的出HasUser

Activity -Has-> User

// Activity Vertex
{
  "@rid": "#28:0",
  "field_values": {
    "a3b4n": "Foo"
  }
}
// Has Edge
{
  "@rid": "#34:0",
    "field_id": "c7d4j"
}
// User Vertex
{
  "@rid": "#29:0",
  "field_values": {
    "v7d4j": "Bar"
  }
}

我会获取边缘字段值并将其与整个用户顶点(而不是参考)的值一起field_id放入活动对象中。field_values

结果:

// Activity Vertex
{
  "@rid": "#28:0",
  "field_values": {
    "a3b4n": "Foo",
    "c7d4j": {
      "@rid": "#29:0",
      "field_values": {
        "v7d4j": "Bar"
      }
    }
  }
}

有没有办法做到这一点?

4

1 回答 1

0

您可以使用嵌套投影:

 SELECT a3b4n, out("Has"):{*} as c7d4j FROM Activity WHERE ...

供参考https://orientdb.org/docs/3.2.x/sql/SQL-Projections.html#nested-projections

于 2021-12-02T07:55:59.267 回答