聚合沙发基础文档数据

问题描述 投票:0回答:1

在couchbase中任何聚合方法或模板(没有N1QL)用于聚合值? couchbase doc喜欢这种格式

{"Students":[
    {
    "Student_id": "101",
    "Name": "Jon",
    "Course" : "Engineer"
    },
    {
    "Student_id": "102",
    "Name": "Snow",
    "Course" : "Medical"
    },
    {
    "Student_id": "103",
    "Name": "Walter",
    "Course" : "Chemistry"
    },
    {
    "Student_id": "104",
    "Name": "White",
    "Course" : "Chemistry"
    }]}

提前致谢!!

couchbase
1个回答
0
投票

您可以使用N1QL进行如下操作。

INSERT INTO default VALUES("f001",{"Students":[ { "Student_id": "101", "Name": "Jon", "Course" : "Engineer" }, { "Student_id": "102", "Name": "Snow", "Course" : "Medical" }, { "Student_id": "103", "Name": "Walter", "Course" : "Chemistry" }, { "Student_id": "104", "Name": "White", "Course" : "Chemistry" } ] } );

SELECT (OBJECT v.Course||"Students":v.cnt
       FOR v IN ARRAY_APPEND(ds, {"Course":"", "cnt": ARRAY_SUM(ds[*].cnt)})
       END).*
LET ds = (SELECT s.Course|| " " AS Course , COUNT(1) AS cnt
           FROM default AS d
           UNNEST d.Students AS s
           GROUP BY s.Course);
© www.soinside.com 2019 - 2024. All rights reserved.