所以我正在学习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 data.datapoints []。point1,data.datapoints []。point2 FROM datatable
我将数据按列名称分组,如下所示:
[
{
"point1": [
"data 1",
"more data 1"
]
},
{
"point2": [
"data 2",
"more data 2"
]
},
]
是否可以设置查询以便返回按对象分组的数据,而不是按数据点分组,而只是返回我想要的字段?我想通过文档来查看,而不是通过文档中的数据点来查看文档中的数据点的子集。提前谢谢!
编辑:我注意到我是否设置了这样的查询:
SELECT data.datapoints[0].point1, data.datapoints[0].point2 FROM datatable
我的数据格式正确,如下所示:
"datapoints": [
{
"point1": "data 1",
"point2": "data 2",
}
]
但当然只返回第一个数据点记录。
答案 0 :(得分:1)
SELECT ud AS datapoints FROM datatable d UNNEST d.datapoints AS ud;
UNNEST的工作方式与JOIN相同。 UNNEST在阵列上工作 数据表d UNNEST d.datapoints AS ud使d的笛卡尔连接和d.datapoints的每个元素。最后我们投射ud。
结帐UNNEST条款了解详情。
https://developer.couchbase.com/documentation/server/current/n1ql/n1ql-language-reference/from.html