非常基本的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
所以我正在学习 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