Aggregate.end

发起聚合操作并在定义完聚合流水线阶段之后需调用 end 方法标志结束定义并实际发起聚合操作。

方法签名如下:

function end(options: object): Promise<Result>

参数说明

options 为必填参数,是一个如下格式的对象,如传入 successfailcomplete 三者之一,则表示使用回调风格,不返回 Promise

字段名 类型 必填 默认值 说明
data Object 新增记录的定义
success Function 成功回调,回调传入的参数 Result 包含查询的结果,Result 定义见下方
fail Function 失败回调
complete Function 调用结束的回调函数(调用成功、失败都会执行)

返回值说明

如传入的 options 参数没有 successfailcomplete 字段,则返回一个 Promise,否则不返回任何值。Promiseresolvereject 的结果定义如下:

结果说明
resolve 新增记录的结果,Result 定义见下方
reject 失败原因

Result 说明

success 回调的结果及 Promise resolve 的结果 Result 是一个如下结构的对象:

字段 类型 说明
list Object[] 结果对象数组

示例代码

promise 风格

const db = wx.cloud.database()
const $ = db.command.aggregate
db.collection('books').aggregate()
  .group({
    // 按 category 字段分组
    _id: '$category',
    // 让输出的每组记录有一个 avgSales 字段,其值是组内所有记录的 sales 字段的平均值
    avgSales: $.avg('$sales')
  })
  .end()
  .then(res => console.log(res))
  .catch(err => console.error(err))

callback 风格

const db = wx.cloud.database()
const $ = db.command.aggregate
db.collection('books').aggregate()
  .group({
    // 按 category 字段分组
    _id: '$category',
    // 让输出的每组记录有一个 avgSales 字段,其值是组内所有记录的 sales 字段的平均值
    avgSales: $.avg('$sales')
  })
  .end({
    success: function(res) {
      console.log(res)
    },
    fail: function(err) {
      console.error(err)
    }
  })