Couchbase N1QL-使用键的嵌套数组

Couchbase N1QL-使用键的嵌套数组,couchbase,n1ql,nested-queries,Couchbase,N1ql,Nested Queries,我不熟悉Couchbase和N1QL语法,我面临一个问题。 假设我们有3种类型的文档: 带有键=类型A:Doc1的类型A的Doc1 { "type": "typeA" "id": "Doc1", "sequences": [ "typeB:Doc2" ] } 带键的类型B的Doc2=类型B:Doc2 { "id": "

我不熟悉Couchbase和N1QL语法,我面临一个问题。 假设我们有3种类型的文档:

带有键=类型A:Doc1的类型A的Doc1

{
  "type": "typeA"
  "id": "Doc1",
  "sequences": [
    "typeB:Doc2"
  ]
}
带键的类型B的Doc2=类型B:Doc2

{
  "id": "Doc2",
  "processors": [
    {
      "order": 1,
      "id": "typeC:Doc3"
    }
  ]
}
带键的类型C的Doc3=类型C:Doc3

{
  "id": "Doc3",
  "prop": "value"
}
我想要实现的是,通过文档键嵌套这3个对象,以获得具有此结构的唯一文档:

{
  "id": "Doc1",
  "sequences": [
    {
      "id": "Doc2",
      "processors": [
        {
         "order": 1,
         "id": "Doc3",
         "prop": "value"
        }
       ]
    }
  ]
我所做的是嵌套前两个文档以获得部分结果。但我也在尝试整合第三份文件

以下是我的尝试:

SELECT dev.*,
       ARRAY sq_i FOR sq_i IN prseq END AS sequences
FROM data dev 
NEST data prseq ON KEYS dev.sequences
WHERE dev.type = 'TypeA'
有人能帮我做第三级筑巢吗? 谢谢。

使用子查询

SELECT dt.*,
    (SELECT ds.*,
       (ARRAY OBJECT_ADD((SELECT RAW dp FROM data AS dp USE KEYS v.id)[0], "order", v.`order`)
       FOR v IN ds.processors
       END) AS processors
     FROM data AS ds USE KEYS dt.sequences) AS sequences
FROM data AS dt
WHERE dt.type = 'TypeA';