aggregate()
语法
db.collectionspace.collection.aggregate( <subOp>… )
类别
Collection
aggregate() 方法与 find()方法功能比较接近,也是从 SequoiaDB 的集合中检索文档记录,并返回游标。
参数
Note:
- aggregate() 方法可以有任意多个子操作,每个子操作是一个 Object 对象,子操作之间用逗号隔开。注意各子操作的参数名的语法规则。
返回值
成功:返回游标对象,可通过游标对象获取结果集。
失败:抛出异常。
当异常抛出时,可以通过获取错误码,或通过获取错误信息。可以参考常见错误处理指南了解更多内容。
版本
v1.0及以上版本。
示例
假设集合 collection 包含如下格式的记录:
- 按条件选择记录,并指定返回字段名,如下聚集操作操作首先使用 $match 选择匹配条件的记录,然后使用 $project 只返回指定的字段名。
- 按条件选择记录,并对记录进行分组。如下操作首先使用 $match 选择匹配条件的记录,然后使用 $group 对记录按字段 major 进行分组,并使用 $avg 返回每个分组中嵌套对象 age 字段的平均值。
- 按条件选择记录,并对记录进行分组、排序、限制返回记录的起始位置和返回记录数。如下操作首先按 $match 选择匹配条件的记录;然后使用 $group 按 major 进行分组,并使用 $avg 返回每个分组中嵌套对象 age 字段的平均值,输出字段名为 avg_age; 最后使用 $sort 按 avg_age 字段值(降序),major 字段值(降序)对结果集进行排序,使用 $skip 确定返回记录的起始位置,使用 $limit 限制返回记录的条数。