非常基本的N1QL分组数据操作

Very basic N1QL grouping data operation

所以我正在学习 N1QL 以编写一些查询来查看使用数据,我正在尝试查看如下所示的数据:

   "data": {
      "datapoints": [
        {
          "point1": "data 1",
          "point2": "data 2",
          "point3": "data 3"
        },
        {
          "point1": "more data 1",
          "point2": "more data 2",
          "point3": "more data 3"
        }
     ]
    }

如果我select这样:

SELECT data.datapoints[].point1, data.datapoints[].point2 来自数据表

我取回按列名分组的数据,如下所示:

[
  {
    "point1": [
        "data 1",
        "more data 1"
    ]
  },
  {
    "point2": [
        "data 2",
        "more data 2"
    ]
  },
]

是否可以设置查询,使其 returns 数据按对象分组,而不是按数据点分组,但只包含我想要的字段?我想按文档查看,而不是按文档中的数据点查看,只查看文档中数据点的子集。提前致谢!

编辑:我注意到如果我这样设置我的查询:

SELECT data.datapoints[0].point1, data.datapoints[0].point2 FROM datatable

我的数据格式正确,如下所示:

  "datapoints": [
    {
      "point1": "data 1",
      "point2": "data 2",
    }
   ]

但当然只返回第一个数据点记录。

SELECT ud AS datapoints FROM datatable d UNNEST d.datapoints AS ud;

UNNEST 与 JOIN 的工作方式相同。 UNNEST 适用于数组。
datatable d UNNEST d.datapoints AS ud 对 d 和 d.datapoints 的每个元素进行笛卡尔 JOIN。最后我们投影ud。

查看 UNNEST 条款了解详情。

https://developer.couchbase.com/documentation/server/current/n1ql/n1ql-language-reference/from.html